嶺回歸 通過對系數的大小施加懲罰來解決 普通最小二乘 的一些問題。 ridge coefficients ( 嶺系數 ) 最小化一個帶罰項的殘差平方和,

這裡
是控制縮減量的複雜度參數:
值越大,縮減量越大, 是以系數變得對共線性變得更加魯棒。
(圖中有10個系數,當alpha較大時,對系數大小的懲罰較大,是以系數分布在0附近;alpha較小時,則系數較發散。具體參考以下第一個示例)
與其他線性模型一樣,Ridge 類成員函數 fit 以數組X和y為輸入,并将線性模型的系數
存儲在其成員變量coef_ 中:
>>> from sklearn import linear_model
>>> reg = linear_model.Ridge (alpha = .5)
>>> reg.fit ([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
Ridge(alpha=0.5, copy_X=True, fit_intercept=True, max_iter=None,
normalize=False, random_state=None, solver='auto', tol=0.001)
>>> reg.coef_
array([ 0.34545455, 0.34545455])
>>> reg.intercept_
0.13636...
示例:
- Plot Ridge coefficients as a function of the regularization( 作為正則化的函數,繪制嶺系數 )
- Classification of text documents using sparse features( 使用稀疏特征的文本文檔分類 )
Ridge Complexity ( 嶺複雜性 )
這種方法與 Ordinary Least Squares ( 普通最小二乘方法 ) 的複雜度相同。
Setting the regularization parameter: generalized Cross-Validation ( 設定正則化參數:廣義交叉驗證 )
RidgeCV 通過内置的 Alpha 參數的交叉驗證來實作嶺回歸。 該對象的工作方式與 GridSearchCV 相同,隻是它預設為 Generalized Cross-Validation ( 通用交叉驗證 ) (GCV),這是一種有效的留一交叉驗證法:
>>> from sklearn import linear_model
>>> reg = linear_model.RidgeCV(alphas=[0.1, 1.0, 10.0])
>>> reg.fit([[0, 0], [0, 0], [1, 1]], [0, .1, 1])
RidgeCV(alphas=[0.1, 1.0, 10.0], cv=None, fit_intercept=True, scoring=None,
normalize=False)
>>> reg.alpha_
0.1
參考:
- “Notes on Regularized Least Squares”, Rifkin & Lippert (technical report, course slides).
參考:
scikit-learn 0.19 文檔
scikit-learn 0.18 中文文檔