sklearn中的彈性網函數 ElasticNet


 

語法:

 ElasticNet(self, alpha=1.0, l1_ratio=0.5, fit_intercept=True, normalize=False, precompute=False, max_iter=1000, copy_X=True, tol=1e-4, warm_start=False, positive=False, random_state=None, selection=’cyclic’)

類型:

 sklearn.linear_model.coordinate_descent 中的類,使用L1和L2組合作為正則項的線性回歸。最小化目標函數為

 
1(2nsamples)||yXw||22+αl1_ratio||w||1+0.5 alpha(1l1_ratio)||w||221(2∗nsamples)||y−Xw||22+α∗l1_ratio∗||w||1+0.5∗ alpha∗(1−l1_ratio)∗||w||22

 如果關注L1和L2懲罰項的分類,記住下面的公式:
 
a=L1+bL2a=L1+b∗L2

 這里:
 
α=a+bl1_ratio=a/(a+b)α=a+bl1_ratio=a/(a+b)

 這里參數l1_ratio對用R中的glmnet包中的αα ,αα 對用R中的λλ ,特別的,l1_ratio = 1 是lasso懲罰,當前l1_ratio0.01l1_ratio≤0.01 是不可靠的,除非你使用自己定義的alpha序列。

 

 在用戶指南中讀取更多。

輸入參數:

  • 參數名:alpha
  • 類型:float, optional
  • 說明:混合懲罰項的常數,morning是1,看筆記的得到有關這個參數的精確數學定義。alpha = 0等價於傳統最小二乘回歸,通過LinearRegression求解。因為數學原因,使用alpha = 0的lasso回歸時不推薦的,如果是這樣,你應該使用 LinearRegression 。*

  • 參數名:l1_ratio
  • 類型:float
  • 說明:彈性網混合參數,0 <= l1_ratio <= 1,對於 l1_ratio = 0,懲罰項是L2正則懲罰。對於 l1_ratio = 1是L1正則懲罰。對於 0

屬性

  • 參數名:coef_
  • 類型:array, shape (n_features,) | (n_targets, n_features)
  • 說明:參數向量(損失函數表達式中的ww )

  • 參數名:sparse_coef_
  • 類型:scipy.sparse matrix, shape (n_features, 1) | (n_targets, n_features)
  • 說明:sparse_coef_ 是從coef_ 導出的只讀屬性

  • 參數名:intercept_
  • 類型:float | array, shape (n_targets,)
  • 說明:決策函數中的獨立項,即截距

  • 參數名:n_iter_
  • 類型:array-like, shape (n_targets,)
  • 說明:由坐標下降求解器運行的,達到指定公差的迭代次數。

實例:

#導入彈性網 from sklearn.linear_model import ElasticNet from sklearn.datasets import make_regression # 初始化數據,模擬數據 X, y = make_regression(n_features=2, random_state=0) # 實例化彈性網類,設定隨機種子,保證每次計算結果都相同 regr = ElasticNet(random_state=0) # 訓練彈性網 regr.fit(X, y) # 打印系數,結果是[ 18.83816048 64.55968825] print(regr.coef_) # 打印截距,結果是1.45126075617 print(regr.intercept_) # 打印預測值,結果是[ 1.45126076] print(regr.predict([[0, 0]]))

 為了避免不必要的內存復制,應該將fit方法的X參數直接作為一個fortranguous numpy數組傳遞

參閱

  • SGDRegressor:采用增量式培訓實現彈性凈回歸。
  • SGDClassifier:用彈性網懲罰實現邏輯回歸。
  • (SGDClassifier(loss=”log”, penalty=”elasticnet”)).


免責聲明!

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



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