本文簡要介紹python語言中 sklearn.linear_model.ElasticNetCV
的用法。
用法:
class sklearn.linear_model.ElasticNetCV(*, l1_ratio=0.5, eps=0.001, n_alphas=100, alphas=None, fit_intercept=True, normalize='deprecated', precompute='auto', max_iter=1000, tol=0.0001, cv=None, copy_X=True, verbose=0, n_jobs=None, positive=False, random_state=None, selection='cyclic')
沿正則化路徑迭代擬合的彈性網絡模型。
請參閱交叉驗證估計器的詞匯表條目。
在用戶指南中閱讀更多信息。
- l1_ratio:浮點數或浮點數列表,默認=0.5
0 和 1 之間的浮點數傳遞給 ElasticNet(在 l1 和 l2 懲罰之間縮放)。對於
l1_ratio = 0
,懲罰是 L2 懲罰。對於l1_ratio = 1
,這是 L1 懲罰。對於0 < l1_ratio < 1
,懲罰是 L1 和 L2 的組合。此參數可以是一個列表,在這種情況下,通過交叉驗證測試不同的值,並使用給出最佳預測分數的值。請注意,l1_ratio 值列表的一個不錯選擇通常是放置更多接近 1 的值(即 Lasso)和不太接近 0(即 Ridge),如[.1, .5, .7, .9, .95, .99, 1]
中。- eps:浮點數,默認=1e-3
路徑的長度。
eps=1e-3
表示alpha_min / alpha_max = 1e-3
。- n_alphas:整數,默認=100
正則化路徑上的 alpha 數量,用於每個 l1_ratio。
- alphas:ndarray,默認=無
計算模型的 alpha 列表。如果 None alphas 是自動設置的。
- fit_intercept:布爾,默認=真
是否計算此模型的截距。如果設置為 false,則不會在計算中使用截距(即數據應居中)。
- normalize:布爾,默認=假
當
fit_intercept
設置為 False 時忽略此參數。如果為 True,則回歸量 X 將在回歸前通過減去均值並除以 l2 範數進行歸一化。如果您希望標準化,請在使用normalize=False
對估計器調用fit
之前使用StandardScaler
。- precompute:‘auto’,布爾型或類似數組的形狀 (n_features, n_features),默認=’auto’
是否使用預先計算的 Gram 矩陣來加速計算。如果設置為
'auto'
,讓我們決定。 Gram 矩陣也可以作為參數傳遞。- max_iter:整數,默認=1000
最大迭代次數。
- tol:浮點數,默認=1e-4
優化的容差:如果更新小於
tol
,則優化代碼檢查對偶間隙的最優性並繼續直到它小於tol
。- cv:int,交叉驗證生成器或可迭代,默認=無
確定交叉驗證拆分策略。 cv 的可能輸入是:
- 無,使用默認的 5 折交叉驗證,
- int,指定折疊次數。
- CV分配器,
- 一個可迭代的 yield (train, test) 拆分為索引數組。
對於 int/None 輸入,使用
KFold
。有關可在此處使用的各種交叉驗證策略,請參閱用戶指南。
- copy_X:布爾,默認=真
如果
True
,X 將被複製;否則,它可能會被覆蓋。- verbose:bool 或 int,默認 = 0
詳細程度。
- n_jobs:整數,默認=無
交叉驗證期間要使用的 CPU 數量。
None
表示 1,除非在joblib.parallel_backend
上下文中。-1
表示使用所有處理器。有關詳細信息,請參閱詞匯表。- positive:布爾,默認=假
當設置為
True
時,強製係數為正。- random_state:int,RandomState 實例,默認=無
選擇要更新的隨機特征的偽隨機數生成器的種子。當
selection
== ‘random’ 時使用。傳遞 int 以獲得跨多個函數調用的可重現輸出。請參閱詞匯表。- selection:{‘cyclic’, ‘random’},默認='循環'
如果設置為‘random’,則每次迭代都會更新隨機係數,而不是默認情況下按順序循環特征。這(設置為‘random’)通常會導致收斂速度顯著加快,尤其是當 tol 高於 1e-4 時。
- alpha_:浮點數
交叉驗證選擇的懲罰量。
- l1_ratio_:浮點數
交叉驗證選擇的 l1 和 l2 懲罰之間的折衷。
- coef_:ndarray 形狀 (n_features,) 或 (n_targets, n_features)
參數向量(成本函數公式中的 w)。
- intercept_:形狀的浮點數或 ndarray (n_targets, n_features)
決策函數中的獨立項。
- mse_path_:ndarray 形狀(n_l1_ratio,n_alpha,n_folds)
每次折疊測試集的均方誤差,變化的 l1_ratio 和 alpha。
- alphas_:ndarray 形狀 (n_alphas,) 或 (n_l1_ratio, n_alphas)
對於每個 l1_ratio,用於擬合的 alpha 網格。
- dual_gap_:浮點數
最優 alpha 優化結束時的對偶間隙。
- n_iter_:int
坐標下降求解器運行的迭代次數,以達到最佳 alpha 的指定容差。
- n_features_in_:int
擬合期間看到的特征數。
- feature_names_in_:ndarray 形狀(
n_features_in_
,) 擬合期間看到的特征名稱。僅當
X
具有全為字符串的函數名稱時才定義。
參數:
屬性:
注意:
例如,請參見例子/linear_model/plot_lasso_model_selection.py.
為避免不必要的內存重複,fit 方法的 X 參數應直接作為 Fortran-contiguous numpy 數組傳遞。
參數 l1_ratio 對應於 glmnet R 包中的 alpha,而 alpha 對應於 glmnet 中的 lambda 參數。更具體地說,優化目標是:
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 * L1 + b * L2
為了:
alpha = a + b and l1_ratio = a / (a + b).
例子:
>>> from sklearn.linear_model import ElasticNetCV >>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=2, random_state=0) >>> regr = ElasticNetCV(cv=5, random_state=0) >>> regr.fit(X, y) ElasticNetCV(cv=5, random_state=0) >>> print(regr.alpha_) 0.199... >>> print(regr.intercept_) 0.398... >>> print(regr.predict([[0, 0]])) [0.398...]
相關用法
- Python sklearn ElasticNetCV.path用法及代碼示例
- Python sklearn ElasticNet用法及代碼示例
- Python sklearn ElasticNet.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.ElasticNetCV。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。