01_sklearn--监督学习——广义线性模型,普通最小二乘法
1.1.廣義線性模型
本章節主要講述一些用于回歸的方法,其中目標值y是輸入變量x的線性組合。數學概念表示為:如果是預測值,那么有:
? ? ? ??(w,x)=?+?+...+
在整個模塊中,我們定義向量作為coef_,定義作為intercept_。
如果需要使用廣義線性模型進行分類,請參閱logistic回歸。
1.1.1.普通最小二乘法
LinearRegression擬合一個帶有系數的線性模型,使得數據集實際觀測數據和預測數據(估計值)之間的殘差平方和最小。其數學表達式為:
LinearRegression會調用fit方法來擬合數組X,y,并且將線性模擬的系數w存儲在其成員變量coef_中:
# -*- coding: UTF-8 -*-from sklearn import linear_modelreg = linear_model.LinearRegression()print(reg.fit([[0,0],[1,1],[2,2]],[0,1,2])) print(reg.coef_)輸出結果:
LinearRegression(copy_X=True, fit_intercept=True, n_jobs=None, normalize=False) [0.5 0.5]然而,對于普通最小二乘的系數估計問題,其依賴于模型各項的相互獨立性。當各項是相關的,且設計矩陣 X 的各列近似線性相關,那么,設計矩陣會趨向于奇異矩陣,這種特性導致最小二乘估計對于隨機誤差非常敏感,可能產生很大的方差。例如,在沒有實驗設計的情況下收集到的數據,這種多重共線性(multicollinearity)的情況可能真的會出現。
示例:線性回歸示例(https://scikit-learn.org/stable/auto_examples/linear_model/plot_ols.html)
?
1.1.1.1.普通最小二乘法的復雜度
{% end raw %}
該方法使用 X 的奇異值分解來計算最小二乘解。如果 X 是一個形狀為?(n_samples, n_features)的矩陣,設 {% math %} n{samples} \geq n{features} {% endmath %} , 則該方法的復雜度為 {% math %} O(n{samples} n{fearures}^2) {% endmath %}
{% raw %}
1.1.2 嶺回歸
Ride回歸通過對系數的大小施加懲罰來解決 "普通最小二乘法"的一些問題。嶺系數最小化的是帶罰項的殘差平方和。
其中,a >= 0是控制系數收縮量的復雜性參數:a的值越大,收縮量越大,模型對共線性的魯棒性也更強。
與其它線性模型一樣,Ride用fit方法完成擬合,并將模型系數w存儲在其coef_成員中:
from sklearn import linear_modelreg = linear_model.Ridge (alpha = .5) print(reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1])) print("--------------------------------------") print(reg.coef_) print("--------------------------------------") print(reg.intercept_)輸出結果:
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,normalize=False, random_state=None, solver='auto', tol=0.001) -------------------------------------- [0.34545455 0.34545455] -------------------------------------- 0.1363636363636364?
?
?
?
?
?
?
?
?
?
?
?
?
總結
以上是生活随笔為你收集整理的01_sklearn--监督学习——广义线性模型,普通最小二乘法的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 06_pandas入门教程,引包,使用D
- 下一篇: 万向节多少钱 了解万向节的价格和购买渠道