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_iter
、n_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)
已更新的物件。