當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


Python sklearn MultiTaskElasticNet用法及代碼示例


本文簡要介紹python語言中 sklearn.linear_model.MultiTaskElasticNet 的用法。

用法:

class sklearn.linear_model.MultiTaskElasticNet(alpha=1.0, *, l1_ratio=0.5, fit_intercept=True, normalize='deprecated', copy_X=True, max_iter=1000, tol=0.0001, warm_start=False, random_state=None, selection='cyclic')

使用 L1/L2 mixed-norm 作為正則化器訓練的多任務 ElasticNet 模型。

MultiTaskElasticNet 的優化目標是:

(1 / (2 * n_samples)) * ||Y - XW||_Fro^2
+ alpha * l1_ratio * ||W||_21
+ 0.5 * alpha * (1 - l1_ratio) * ||W||_Fro^2

其中:

||W||_21 = sum_i sqrt(sum_j W_ij ^ 2)

即每一行的範數之和。

在用戶指南中閱讀更多信息。

參數

alpha浮點數,默認=1.0

乘以 L1/L2 項的常數。默認為 1.0。

l1_ratio浮點數,默認=0.5

ElasticNet 混合參數,0 < l1_ratio <= 1。對於 l1_ratio = 1,懲罰是 L1/L2 懲罰。對於 l1_ratio = 0,這是 L2 懲罰。對於 0 < l1_ratio < 1 ,懲罰是 L1/L2 和 L2 的組合。

fit_intercept布爾,默認=真

是否計算此模型的截距。如果設置為 false,則不會在計算中使用截距(即數據應居中)。

normalize布爾,默認=假

fit_intercept 設置為 False 時忽略此參數。如果為 True,則回歸量 X 將在回歸前通過減去均值並除以 l2 範數進行歸一化。如果您希望標準化,請在使用 normalize=False 對估計器調用 fit 之前使用 StandardScaler

copy_X布爾,默認=真

如果 True ,X 將被複製;否則,它可能會被覆蓋。

max_iter整數,默認=1000

最大迭代次數。

tol浮點數,默認=1e-4

優化的容差:如果更新小於 tol ,則優化代碼檢查對偶間隙的最優性並繼續直到它小於 tol

warm_start布爾,默認=假

當設置為 True 時,重用先前調用的解決方案以適合作為初始化,否則,隻需擦除先前的解決方案。請參閱詞匯表。

random_stateint,RandomState 實例,默認=無

選擇要更新的隨機特征的偽隨機數生成器的種子。當selection == ‘random’ 時使用。傳遞 int 以獲得跨多個函數調用的可重現輸出。請參閱詞匯表。

selection{‘cyclic’, ‘random’},默認='循環'

如果設置為‘random’,則每次迭代都會更新隨機係數,而不是默認情況下按順序循環特征。這(設置為‘random’)通常會導致收斂速度顯著加快,尤其是當 tol 高於 1e-4 時。

屬性

intercept_ndarray 形狀 (n_targets,)

決策函數中的獨立項。

coef_ndarray 形狀(n_targets,n_features)

參數向量(成本函數公式中的 W)。如果一維 y 以合適的方式傳入(非多任務使用),則 coef_ 是一維數組。請注意,coef_ 存儲了 WW.T 的轉置。

n_iter_int

坐標下降求解器為達到指定容差而運行的迭代次數。

dual_gap_浮點數

優化結束時的雙重差距。

eps_浮點數

公差按目標 y 的方差縮放。

sparse_coef_形狀為 (n_features,) 或 (n_targets, n_features) 的稀疏矩陣

擬合 coef_ 的稀疏表示。

n_features_in_int

擬合期間看到的特征數。

feature_names_in_ndarray 形狀(n_features_in_,)

擬合期間看到的特征名稱。僅當 X 具有全為字符串的函數名稱時才定義。

注意

用於擬合模型的算法是坐標下降。

為避免不必要的內存重複,fit 方法的 X 和 y 參數應直接作為 Fortran-contiguous numpy 數組傳遞。

例子

>>> from sklearn import linear_model
>>> clf = linear_model.MultiTaskElasticNet(alpha=0.1)
>>> clf.fit([[0,0], [1, 1], [2, 2]], [[0, 0], [1, 1], [2, 2]])
MultiTaskElasticNet(alpha=0.1)
>>> print(clf.coef_)
[[0.45663524 0.45612256]
 [0.45663524 0.45612256]]
>>> print(clf.intercept_)
[0.0872422 0.0872422]

相關用法


注:本文由純淨天空篩選整理自scikit-learn.org大神的英文原創作品 sklearn.linear_model.MultiTaskElasticNet。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。