一、嶺回歸模型
嶺回歸其實就是在普通最小二乘法回歸(ordinary least squares regression)的基礎上,加入了正則化參數λ。
二、如何調用
class sklearn.linear_model.Ridge(alpha=1.0, fit_intercept=True, normalize=False, copy_X=True, max_iter=None, tol=0.001, solver='auto')
alpha:就是上述正則化參數λ;
fit_intercept:默認為true,數據可以攔截,沒有中心化;
normalize:輸入的樣本特征歸一化,默認false;
copy_X:復制或者重寫;
max_iter:最大迭代次數;
tol: 控制求解的精度;
solver:求解器,有auto, svd, cholesky, sparse_cg, lsqr幾種,一般我們選擇auto,一些svd,cholesky也都是稀疏表示中常用的omp求解算法中的知識,大家有時間可以去了解。
Ridge函數會返回一個clf類,里面有很多的函數,一般我們用到的有:
clf.fit(X, y):輸入訓練樣本數據X,和對應的標記y;
clf.predict(X):利用學習好的線性分類器,預測標記,一般在fit之后調用;
clf.corf_: 輸入回歸表示系數
詳見:
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Ridge.html#sklearn.linear_model.Ridge.decision_function
三、Lasso模型(Least absolute shrinkage and selection operator-最小絕對收縮與選擇算子)
Lasso構造的是一個一階的懲罰函數,滿足L1范數,從而使得模型的一些變量參數可能為0(嶺回歸系數為0的可能性非常低),得到的模型更為精煉。
Lasso的正則化懲罰函數形式是L1范數,屬於絕對值形式,L1范數的好處是當lambda充分大時可以把某些待估參數精確地收縮到0。回歸的參數估計經常會有為0的狀況,對於這種參數,我們便可以選擇對它們進行剔除,就不用我們進行人工選擇剔除變量,而可以讓程序自動根據是否為0來剔除掉變量了。剔除了無用變量后,可能會使的模型效果更好,因為會存在一些關聯比較大的共線變量,從這個角度來看,Lasso回歸要優於嶺回歸。
scikit-learn對lasso模型的調用與上述嶺回歸調用大同小異,詳見:
http://scikit-learn.org/stable/modules/generated/sklearn.linear_model.Lasso.html