本文簡要介紹python語言中 sklearn.linear_model.ElasticNet
的用法。
用法:
class sklearn.linear_model.ElasticNet(alpha=1.0, *, l1_ratio=0.5, fit_intercept=True, normalize='deprecated', precompute=False, max_iter=1000, copy_X=True, tol=0.0001, warm_start=False, positive=False, random_state=None, selection='cyclic')
將 L1 和 L2 先驗組合作為正則化器的線性回歸。
最小化目標函數:
1 / (2 * n_samples) * ||y - Xw||^2_2 + alpha * l1_ratio * ||w||_1 + 0.5 * alpha * (1 - l1_ratio) * ||w||^2_2
如果您有興趣分別控製 L1 和 L2 懲罰,請記住這相當於:
a * ||w||_1 + 0.5 * b * ||w||_2^2
其中:
alpha = a + b and l1_ratio = a / (a + b)
參數 l1_ratio 對應於 glmnet R 包中的 alpha,而 alpha 對應於 glmnet 中的 lambda 參數。具體來說,l1_ratio = 1 是套索懲罰。目前,l1_ratio <= 0.01 不可靠,除非您提供自己的 alpha 序列。
在用戶指南中閱讀更多信息。
- alpha:浮點數,默認=1.0
乘以懲罰項的常數。默認為 1.0。有關此參數的確切數學含義,請參見注釋。
alpha = 0
相當於普通的最小二乘,由LinearRegression
對象解決。出於數字原因,不建議將alpha = 0
與Lasso
對象一起使用。鑒於此,您應該使用LinearRegression
對象。- l1_ratio:浮點數,默認=0.5
ElasticNet 混合參數,帶有
0 <= l1_ratio <= 1
。對於l1_ratio = 0
,懲罰是 L2 懲罰。For l1_ratio = 1
這是 L1 懲罰。對於0 < l1_ratio < 1
,懲罰是 L1 和 L2 的組合。- fit_intercept:布爾,默認=真
是否應該估計截距。如果
False
,則假定數據已經居中。- normalize:布爾,默認=假
當
fit_intercept
設置為 False 時忽略此參數。如果為 True,則回歸量 X 將在回歸前通過減去均值並除以 l2 範數進行歸一化。如果您希望標準化,請在使用normalize=False
對估計器調用fit
之前使用StandardScaler
。- precompute:布爾型或類似數組的形狀 (n_features, n_features),默認=False
是否使用預先計算的 Gram 矩陣來加速計算。 Gram 矩陣也可以作為參數傳遞。對於稀疏輸入,此選項始終為
False
以保持稀疏性。- max_iter:整數,默認=1000
最大迭代次數。
- copy_X:布爾,默認=真
如果
True
,X 將被複製;否則,它可能會被覆蓋。- tol:浮點數,默認=1e-4
優化的容差:如果更新小於
tol
,則優化代碼檢查對偶間隙的最優性並繼續直到它小於tol
。- warm_start:布爾,默認=假
當設置為
True
時,重用先前調用的解決方案以適合作為初始化,否則,隻需擦除先前的解決方案。請參閱詞匯表。- positive:布爾,默認=假
當設置為
True
時,強製係數為正。- random_state:int,RandomState 實例,默認=無
選擇要更新的隨機特征的偽隨機數生成器的種子。當
selection
== ‘random’ 時使用。傳遞 int 以獲得跨多個函數調用的可重現輸出。請參閱詞匯表。- selection:{‘cyclic’, ‘random’},默認='循環'
如果設置為‘random’,則每次迭代都會更新隨機係數,而不是默認情況下按順序循環特征。這(設置為‘random’)通常會導致收斂速度顯著加快,尤其是當 tol 高於 1e-4 時。
- coef_:ndarray 形狀 (n_features,) 或 (n_targets, n_features)
參數向量(成本函數公式中的 w)。
sparse_coef_
形狀為 (n_features,) 或 (n_targets, n_features) 的稀疏矩陣擬合
coef_
的稀疏表示。- intercept_:形狀的浮點數或 ndarray (n_targets,)
決策函數中的獨立項。
- n_iter_:int列表
坐標下降求解器為達到指定容差而運行的迭代次數。
- dual_gap_:形狀的浮點數或 ndarray (n_targets,)
給定參數 alpha,優化結束時的對偶間隙,形狀與 y 的每個觀察值相同。
- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。
參數:
屬性:
注意:
為避免不必要的內存重複,fit 方法的 X 參數應直接作為 Fortran-contiguous numpy 數組傳遞。
例子:
>>> 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) ElasticNet(random_state=0) >>> print(regr.coef_) [18.83816048 64.55968825] >>> print(regr.intercept_) 1.451... >>> print(regr.predict([[0, 0]])) [1.451...]
相關用法
- Python sklearn ElasticNetCV用法及代碼示例
- Python sklearn ElasticNet.path用法及代碼示例
- Python sklearn ElasticNetCV.path用法及代碼示例
- Python sklearn EllipticEnvelope用法及代碼示例
- Python sklearn ExpSineSquared用法及代碼示例
- Python sklearn ExtraTreeClassifier用法及代碼示例
- Python sklearn ExtraTreesRegressor用法及代碼示例
- Python sklearn ExtraTreeRegressor用法及代碼示例
- Python sklearn ExtraTreesClassifier用法及代碼示例
- Python sklearn EmpiricalCovariance用法及代碼示例
- Python sklearn Exponentiation用法及代碼示例
- Python sklearn jaccard_score用法及代碼示例
- Python sklearn WhiteKernel用法及代碼示例
- Python sklearn CalibrationDisplay.from_predictions用法及代碼示例
- Python sklearn VotingRegressor用法及代碼示例
- Python sklearn gen_batches用法及代碼示例
- Python sklearn MDS用法及代碼示例
- Python sklearn adjusted_rand_score用法及代碼示例
- Python sklearn MLPClassifier用法及代碼示例
- Python sklearn train_test_split用法及代碼示例
- Python sklearn RandomTreesEmbedding用法及代碼示例
- Python sklearn GradientBoostingRegressor用法及代碼示例
- Python sklearn GridSearchCV用法及代碼示例
- Python sklearn log_loss用法及代碼示例
- Python sklearn r2_score用法及代碼示例
注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.linear_model.ElasticNet。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。