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


Python sklearn MultiTaskLassoCV.path用法及代碼示例


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

用法:

static path(X, y, *, eps=0.001, n_alphas=100, alphas=None, precompute='auto', Xy=None, copy_X=True, coef_init=None, verbose=False, return_n_iter=False, positive=False, **params)

使用坐標下降計算 Lasso 路徑。

套索優化函數因單聲道和multi-outputs 而異。

對於mono-output 任務,它是:

(1 / (2 * n_samples)) * ||y - Xw||^2_2 + alpha * ||w||_1

對於multi-output 任務,它是:

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

其中:

||W||_21 = \sum_i \sqrt{\sum_j w_{ij}^2}

即每行的範數之和。

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

參數

X{類數組,稀疏矩陣},形狀為 (n_samples, n_features)

訓練數據。直接作為Fortran-contiguous 數據傳遞以避免不必要的內存重複。如果 y 是 mono-output 那麽 X 可以是稀疏的。

y{類似數組的稀疏矩陣},形狀為 (n_samples,) 或 (n_samples, n_targets)

目標值。

eps浮點數,默認=1e-3

路徑的長度。 eps=1e-3 表示 alpha_min / alpha_max = 1e-3

n_alphas整數,默認=100

正則化路徑上的 alpha 數量。

alphasndarray,默認=無

計算模型的 alpha 列表。如果自動設置None alpha。

precompute‘auto’,布爾型或類似數組的形狀 (n_features, n_features),默認=’auto’

是否使用預先計算的 Gram 矩陣來加速計算。如果設置為'auto',讓我們決定。 Gram 矩陣也可以作為參數傳遞。

Xy形狀為 (n_features,) 或 (n_features, n_targets) 的類似數組,默認=無

Xy = np.dot(X.T, y) 可以預先計算。僅在預先計算了 Gram 矩陣時才有用。

copy_X布爾,默認=真

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

coef_initndarray 形狀 (n_features, ), 默認=None

係數的初始值。

verbosebool 或 int,默認 = False

詳細程度。

return_n_iter布爾,默認=假

是否返回迭代次數。

positive布爾,默認=假

如果設置為 True,則強製係數為正。 (僅在 y.ndim == 1 時允許)。

**params誇格斯

傳遞給坐標下降求解器的關鍵字參數。

返回

alphasndarray 形狀 (n_alphas,)

沿著計算模型的路徑的 alpha。

coefsndarray 形狀 (n_features, n_alphas) 或 (n_targets, n_features, n_alphas)

沿路徑的係數。

dual_gapsndarray 形狀 (n_alphas,)

每個 alpha 優化結束時的對偶間隙。

n_itersint列表

坐標下降優化器為達到每個 alpha 的指定容差所采取的迭代次數。

注意

例如,請參見例子/linear_model/plot_lasso_coordinate_descent_path.py.

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

請注意,在某些情況下,Lars 求解器實現此函數的速度可能要快得多。特別是,線性插值可用於檢索lars_path輸出的值之間的模型係數

例子

比較 lasso_path 和 lars_path 與插值:

>>> import numpy as np
>>> from sklearn.linear_model import lasso_path
>>> X = np.array([[1, 2, 3.1], [2.3, 5.4, 4.3]]).T
>>> y = np.array([1, 2, 3.1])
>>> # Use lasso_path to compute a coefficient path
>>> _, coef_path, _ = lasso_path(X, y, alphas=[5., 1., .5])
>>> print(coef_path)
[[0.         0.         0.46874778]
 [0.2159048  0.4425765  0.23689075]]
>>> # Now use lars_path and 1D linear interpolation to compute the
>>> # same path
>>> from sklearn.linear_model import lars_path
>>> alphas, active, coef_path_lars = lars_path(X, y, method='lasso')
>>> from scipy import interpolate
>>> coef_path_continuous = interpolate.interp1d(alphas[::-1],
...                                             coef_path_lars[:, ::-1])
>>> print(coef_path_continuous([5., 1., .5]))
[[0.         0.         0.46915237]
 [0.2159048  0.4425765  0.23668876]]

相關用法


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