LassoLarsIC#

class sklearn.linear_model.LassoLarsIC(criterion='aic', *, fit_intercept=True, verbose=False, precompute='auto', max_iter=500, eps=np.float64(2.220446049250313e-16), copy_X=True, positive=False, noise_variance=None)[原始碼]#

使用 Lars 搭配 BIC 或 AIC 進行模型選擇的 Lasso 模型擬合。

Lasso 的最佳化目標為

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

AIC 是赤池資訊量準則 [2],而 BIC 是貝氏資訊量準則 [3]。這些準則可用於選擇正規化參數的值,在模型的擬合優度和複雜度之間取得平衡。一個好的模型應該能很好地解釋資料,同時保持簡單。

請在使用者指南中閱讀更多資訊。

參數:
criterion{‘aic’, ‘bic’}, default=’aic’

要使用的準則類型。

fit_interceptbool, default=True

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

verbosebool 或 int,default=False

設定詳細程度。

precomputebool, ‘auto’ 或 array-like, default=’auto’

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

max_iterint, default=500

要執行的最大迭代次數。可用於提早停止。

epsfloat, default=np.finfo(float).eps

計算喬列斯基對角因子時的機器精確度正規化。對於條件非常差的系統,請增加此值。與某些基於迭代最佳化的演算法中的 tol 參數不同,此參數不控制最佳化的容忍度。

copy_Xbool, default=True

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

positivebool, default=False

將係數限制為 >= 0。請注意,您可能需要移除預設設定為 True 的 fit_intercept。在正數限制下,模型係數對於小的 alpha 值不會收斂到普通最小平方解。只有逐步 Lars-Lasso 演算法達到的最小 alpha 值(當 fit_path=True 時為 alphas_[alphas_ > 0.].min())之前的係數通常與座標下降 Lasso 估計器的解一致。因此,LassoLarsIC 僅適用於預期和/或達到稀疏解的問題。

noise_variancefloat, default=None

資料的估計雜訊變異數。如果為 None,則由 OLS 模型計算無偏估計。但是,僅在 n_samples > n_features + fit_intercept 的情況下才有可能。

版本 1.1 中新增。

屬性:
coef_形狀為 (n_features,) 的 array-like

參數向量(公式中的 w)

intercept_float

決策函數中的獨立項。

alpha_float

資訊準則選擇的 alpha 參數

alphas_形狀為 (n_alphas + 1,) 的 array-like 或此類陣列的列表

每次迭代的最大共變異數(絕對值)。n_alphas 要么是 max_itern_features,要么是路徑中 alpha >= alpha_min 的節點數,以較小者為準。如果是列表,則其長度為 n_targets

n_iter_int

lars_path 執行以找到 alpha 網格的迭代次數。

criterion_形狀為 (n_alphas,) 的 array-like

所有 alpha 的資訊準則(‘aic’、‘bic’)值。選擇具有最小資訊準則的 alpha,如 [1] 中所述。

noise_variance_float

用於計算準則的資料估計雜訊變異數。

版本 1.1 中新增。

n_features_in_int

fit期間看到的特徵數量。

版本 0.24 中新增。

feature_names_in_形狀為 (n_features_in_,) 的 ndarray

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

版本 1.0 中新增。

另請參閱

lars_path

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

lasso_path

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

Lasso

使用 L1 先驗作為正規化器(又稱 Lasso)訓練的線性模型。

LassoCV

沿著正規化路徑迭代擬合的 Lasso 線性模型。

LassoLars

使用最小角度迴歸(又稱 Lars)擬合的 Lasso 模型。

LassoLarsCV

使用 LARS 演算法進行交叉驗證的 Lasso。

sklearn.decomposition.sparse_encode

稀疏編碼。

備註

自由度的計算方式如 [1] 中所述。

若要了解 AIC 和 BIC 準則的數學公式詳細資訊,請參閱使用者指南

參考文獻

範例

>>> from sklearn import linear_model
>>> reg = linear_model.LassoLarsIC(criterion='bic')
>>> X = [[-2, 2], [-1, 1], [0, 0], [1, 1], [2, 2]]
>>> y = [-2.2222, -1.1111, 0, -1.1111, -2.2222]
>>> reg.fit(X, y)
LassoLarsIC(criterion='bic')
>>> print(reg.coef_)
[ 0.  -1.11...]
fit(X, y, copy_X=None)[原始碼]#

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

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

訓練資料。

y形狀為 (n_samples,) 的類陣列 (array-like)

目標值。如有必要,將會轉換為 X 的資料型別 (dtype)。

copy_X布林值 (bool),預設值為 None

如果提供此參數,將會覆寫在建立實例時對 copy_X 所做的選擇。 如果 True,則會複製 X;否則,可能會覆寫 X。

回傳值:
self物件 (object)

回傳 self 的實例。

get_metadata_routing()[原始碼]#

取得此物件的中繼資料路由 (metadata routing)。

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

回傳值:
routingMetadataRequest

一個封裝路由資訊的 MetadataRequest

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

取得此估算器 (estimator) 的參數。

參數:
deep布林值 (bool),預設值為 True

如果為 True,則會回傳此估算器及其包含的子物件(也是估算器)的參數。

回傳值:
params字典 (dict)

參數名稱對應到其值的字典。

predict(X)[原始碼]#

使用線性模型進行預測。

參數:
X類陣列 (array-like) 或稀疏矩陣 (sparse matrix),形狀為 (n_samples, n_features)

樣本。

回傳值:
C陣列 (array),形狀為 (n_samples,)

回傳預測值。

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

回傳預測的決定係數 (coefficient of determination)。

決定係數 \(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) 的類陣列 (array-like)

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

y形狀為 (n_samples,) 或 (n_samples, n_outputs) 的類陣列 (array-like)

X 的真實值。

sample_weight形狀為 (n_samples,) 的類陣列 (array-like),預設值為 None

樣本權重。

回傳值:
score浮點數 (float)

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

備註

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

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

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

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

每個參數的選項如下:

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

  • False:不請求中繼資料,且 meta-estimator 不會將其傳遞至 fit

  • None:不請求中繼資料,且如果使用者提供,則 meta-estimator 會引發錯誤。

  • str:中繼資料應使用此給定的別名而不是原始名稱傳遞至 meta-estimator。

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

在 1.3 版本中新增。

注意

此方法僅在將此估算器用作 meta-estimator 的子估算器時相關,例如在 Pipeline 內使用。否則,它沒有任何作用。

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

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

回傳值:
self物件 (object)

已更新的物件。

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

設定此估算器的參數。

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

參數:
**paramsdict

估算器參數。

回傳值:
self估算器實例

估算器實例。

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

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

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

每個參數的選項如下:

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

  • False:不請求中繼資料,且 meta-estimator 不會將其傳遞至 score

  • None:不請求中繼資料,且如果使用者提供,則 meta-estimator 會引發錯誤。

  • str:中繼資料應使用此給定的別名而不是原始名稱傳遞至 meta-estimator。

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

在 1.3 版本中新增。

注意

此方法僅在將此估算器用作 meta-estimator 的子估算器時相關,例如在 Pipeline 內使用。否則,它沒有任何作用。

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

用於 score 中的 sample_weight 參數的中繼資料路由。

回傳值:
self物件 (object)

已更新的物件。