Lars#

class sklearn.linear_model.Lars(*, fit_intercept=True, verbose=False, precompute='auto', n_nonzero_coefs=500, eps=np.float64(2.220446049250313e-16), copy_X=True, fit_path=True, jitter=None, random_state=None)[來源]#

最小角度迴歸模型,又稱 LAR。

請參閱使用者指南以了解更多資訊。

參數:
fit_interceptbool,預設值=True

是否為此模型計算截距。如果設定為 false,則在計算中不會使用截距(即,預期資料會居中)。

verbosebool 或 int,預設值=False

設定詳細程度。

precomputebool、「auto」或類似陣列,預設值='auto'

是否使用預先計算的格拉姆矩陣來加速計算。如果設定為 'auto',則由我們決定。格拉姆矩陣也可以作為引數傳遞。

n_nonzero_coefsint,預設值=500

非零係數的目標數量。若無限制,請使用 np.inf

epsfloat,預設值為 np.finfo(float).eps

在計算 Cholesky 對角因子時使用的機器精確度正規化。對於病態嚴重的系統,請增加此值。與某些基於迭代優化的演算法中的 tol 參數不同,此參數不控制優化的容忍度。

copy_Xbool,預設值為 True

如果為 True,則會複製 X;否則,可能會覆寫 X。

fit_pathbool,預設值為 True

如果為 True,則完整路徑會儲存在 coef_path_ 屬性中。如果您要計算大型問題或多個目標的解,將 fit_path 設定為 False 會加快速度,特別是對於小的 alpha 值。

jitterfloat,預設值為 None

要加到 y 值上的均勻雜訊參數的上限,以滿足模型一次計算一個的假設。這可能有助於穩定性。

在版本 0.23 中新增。

random_stateint、RandomState 實例或 None,預設值為 None

決定抖動的隨機數產生。傳遞一個 int 以便在多次函數呼叫中產生可重現的輸出。請參閱詞彙表。如果 jitter 為 None,則忽略此參數。

在版本 0.23 中新增。

屬性:
alphas_形狀為 (n_alphas + 1,) 的類陣列或此類陣列的列表

每次迭代的最大共變異數(絕對值)。n_alphasmax_itern_features 或路徑中 alpha >= alpha_min 的節點數(取最小者)。如果這是類陣列的列表,則外部列表的長度為 n_targets

active_形狀為 (n_alphas,) 的列表或此類列表的列表

路徑末端活動變數的索引。如果這是列表的列表,則外部列表的長度為 n_targets

coef_path_形狀為 (n_features, n_alphas + 1) 的類陣列或此類陣列的列表

沿路徑的係數變化值。如果 fit_path 參數為 False,則不存在此值。如果這是類陣列的列表,則外部列表的長度為 n_targets

coef_形狀為 (n_features,) 或 (n_targets, n_features) 的類陣列

參數向量(公式中的 w)。

intercept_float 或形狀為 (n_targets,) 的類陣列

決策函數中的獨立項。

n_iter_類陣列或 int

lars_path 尋找每個目標的 alpha 網格所使用的迭代次數。

n_features_in_int

fit 期間看到的特徵數量。

在版本 0.24 中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

fit 期間看到的特徵名稱。僅當 X 具有都是字串的特徵名稱時才定義。

在版本 1.0 中新增。

另請參閱

lars_path

使用 LARS 演算法計算最小角度迴歸或 Lasso 路徑。

LarsCV

交叉驗證的最小角度迴歸模型。

sklearn.decomposition.sparse_encode

稀疏編碼。

範例

>>> from sklearn import linear_model
>>> reg = linear_model.Lars(n_nonzero_coefs=1)
>>> reg.fit([[-1, 1], [0, 0], [1, 1]], [-1.1111, 0, -1.1111])
Lars(n_nonzero_coefs=1)
>>> print(reg.coef_)
[ 0. -1.11...]
fit(X, y, Xy=None)[原始碼]#

使用 X、y 作為訓練資料來擬合模型。

參數:
X形狀為 (n_samples, n_features) 的類陣列

訓練資料。

y形狀為 (n_samples,) 或 (n_samples, n_targets) 的類陣列

目標值。

Xy形狀為 (n_features,) 或 (n_features, n_targets) 的類陣列,預設值為 None

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

返回:
self物件

返回自身的實例。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由。

請查看使用者指南,了解路由機制如何運作。

返回:
routingMetadataRequest

封裝路由資訊的 MetadataRequest

get_params(deep=True)[原始碼]#

取得此估算器的參數。

參數:
deepbool,預設值為 True

如果為 True,將傳回此估算器和包含的子物件(即估算器)的參數。

返回:
paramsdict

參數名稱對應到它們的值。

predict(X)[原始碼]#

使用線性模型進行預測。

參數:
X類陣列或稀疏矩陣,形狀為 (n_samples, n_features)

樣本。

返回:
C陣列,形狀為 (n_samples,)

返回預測值。

score(X, y, sample_weight=None)[原始碼]#

返回預測的決定係數。

決定係數 \(R^2\) 定義為 \((1 - \frac{u}{v})\),其中 \(u\) 是殘差平方和 ((y_true - y_pred)** 2).sum(),而 \(v\) 是總平方和 ((y_true - y_true.mean()) ** 2).sum()。最佳可能的分數是 1.0,它可能是負數(因為模型可能非常糟糕)。一個總是預測 y 的期望值,而不考慮輸入特徵的常數模型,會得到 0.0 的 \(R^2\) 分數。

參數:
X形狀為 (n_samples, n_features) 的類陣列

測試樣本。對於某些估算器,這可能是預先計算的核矩陣或形狀為 (n_samples, n_samples_fitted) 的通用物件列表,其中 n_samples_fitted 是估算器擬合中使用的樣本數。

y類陣列,形狀為 (n_samples,) 或 (n_samples, n_outputs)

X 的真實值。

sample_weight類陣列,形狀為 (n_samples,),預設值為 None

樣本權重。

返回:
score浮點數

self.predict(X) 相對於 y\(R^2\)

注意事項

當在回歸器上呼叫 score 時使用的 \(R^2\) 分數,從 0.23 版本開始使用 multioutput='uniform_average',以與 r2_score 的預設值保持一致。這會影響所有多輸出回歸器的 score 方法(MultiOutputRegressor 除外)。

set_fit_request(*, Xy: bool | None | str = '$UNCHANGED$') Lars[原始碼]#

請求傳遞給 fit 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的使用者指南

每個參數的選項是

  • True:請求中繼資料,如果提供則傳遞給 fit。如果未提供中繼資料,則忽略該請求。

  • False:不請求中繼資料,並且元估算器不會將其傳遞給 fit

  • None:不請求中繼資料,如果使用者提供,則元估算器會引發錯誤。

  • str:中繼資料應使用此給定的別名而不是原始名稱傳遞給元估算器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這可讓您變更某些參數的請求,而不是其他參數的請求。

在 1.3 版本中新增。

注意

只有在此估算器用作元估算器的子估算器時,此方法才相關,例如在 Pipeline 內使用。否則,它沒有任何作用。

參數:
Xy字串、True、False 或 None,預設值為 sklearn.utils.metadata_routing.UNCHANGED

用於 fit 中的 Xy 參數的中繼資料路由。

返回:
self物件

更新後的物件。

set_params(**params)[原始碼]#

設定此估算器的參數。

此方法適用於簡單的估計器,以及巢狀物件(例如Pipeline)。後者具有 <component>__<parameter> 形式的參數,因此可以更新巢狀物件的每個組件。

參數:
**paramsdict

估計器參數。

返回:
self估計器實例

估計器實例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') Lars[原始碼]#

請求傳遞給 score 方法的中繼資料。

請注意,只有在 enable_metadata_routing=True 時,此方法才相關(請參閱 sklearn.set_config)。請參閱關於路由機制如何運作的使用者指南

每個參數的選項是

  • True:請求中繼資料,並在提供時傳遞給 score。如果未提供中繼資料,則會忽略請求。

  • False:不請求中繼資料,且元估計器不會將其傳遞給 score

  • None:不請求中繼資料,如果使用者提供,則元估算器會引發錯誤。

  • str:中繼資料應使用此給定的別名而不是原始名稱傳遞給元估算器。

預設值 (sklearn.utils.metadata_routing.UNCHANGED) 保留現有的請求。這可讓您變更某些參數的請求,而不是其他參數的請求。

在 1.3 版本中新增。

注意

只有在此估算器用作元估算器的子估算器時,此方法才相關,例如在 Pipeline 內使用。否則,它沒有任何作用。

參數:
sample_weightstr、True、False 或 None,預設值 = sklearn.utils.metadata_routing.UNCHANGED

scoresample_weight 參數的中繼資料路由。

返回:
self物件

更新後的物件。