scikit-learn中的嶺回歸(Ridge Regression)與Lasso回歸


一、嶺回歸模型

  嶺回歸其實就是在普通最小二乘法回歸(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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM