ARDRegression#
- class sklearn.linear_model.ARDRegression(*, max_iter=300, tol=0.001, alpha_1=1e-06, alpha_2=1e-06, lambda_1=1e-06, lambda_2=1e-06, compute_score=False, threshold_lambda=10000.0, fit_intercept=True, copy_X=True, verbose=False)[原始碼]#
貝氏 ARD 迴歸。
使用 ARD 先驗機率,擬合迴歸模型的權重。迴歸模型的權重假設為高斯分佈。同時估計參數 lambda (權重分佈的精確度) 和 alpha (雜訊分佈的精確度)。估計通過迭代程序 (證據最大化) 完成。
請在使用者指南中閱讀更多資訊。
- 參數:
- max_iterint,預設值=300
最大迭代次數。
於 1.3 版本變更。
- tolfloat,預設值=1e-3
如果 w 已收斂,則停止演算法。
- alpha_1float,預設值=1e-6
超參數:alpha 參數的 Gamma 分佈先驗的形狀參數。
- alpha_2float,預設值=1e-6
超參數:alpha 參數的 Gamma 分佈先驗的反向尺度參數(速率參數)。
- lambda_1float,預設值=1e-6
超參數:lambda 參數的 Gamma 分佈先驗的形狀參數。
- lambda_2float,預設值=1e-6
超參數:lambda 參數的 Gamma 分佈先驗的反向尺度參數(速率參數)。
- compute_scorebool,預設值=False
如果為 True,則計算模型每一步的目標函數。
- threshold_lambdafloat,預設值=10 000
用於從計算中移除(剪枝)具有高精確度的權重的閾值。
- fit_interceptbool,預設值=True
是否計算此模型的截距。如果設定為 false,則計算中將不使用截距 (即預期資料已居中)。
- copy_Xbool,預設值=True
如果為 True,則將複製 X;否則,可能會覆寫 X。
- verbosebool,預設值=False
擬合模型時的詳細模式。
- 屬性:
- coef_形狀為 (n_features,) 的類陣列
迴歸模型的係數 (分佈的平均值)
- alpha_float
雜訊的估計精確度。
- lambda_形狀為 (n_features,) 的類陣列
權重的估計精確度。
- sigma_形狀為 (n_features, n_features) 的類陣列
權重的估計變異數-共變異數矩陣
- scores_float
如果已計算,則為目標函數的值 (要最大化)
- n_iter_int
達到停止條件的實際迭代次數。
於 1.3 版本新增。
- intercept_float
決策函數中的獨立項。如果
fit_intercept = False
,則設定為 0.0。- X_offset_float
如果
fit_intercept=True
,則為減去以將資料居中為零平均值的偏移量。否則設定為 np.zeros(n_features)。- X_scale_float
設定為 np.ones(n_features)。
- n_features_in_int
在 fit 期間看到的特徵數量。
於 0.24 版本新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。僅當
X
具有都是字串的特徵名稱時才定義。於 1.0 版本新增。
另請參閱
BayesianRidge
貝氏嶺迴歸。
註解
如需範例,請參閱examples/linear_model/plot_ard.py。
參考文獻
D. J. C. MacKay, Bayesian nonlinear modeling for the prediction competition, ASHRAE Transactions, 1994.
R. Salakhutdinov, Lecture notes on Statistical Machine Learning, http://www.utstat.toronto.edu/~rsalakhu/sta4273/notes/Lecture2.pdf#page=15 其 beta 是我們的
self.alpha_
其 alpha 是我們的self.lambda_
ARD 與投影片略有不同:僅保留self.lambda_ < self.threshold_lambda
的維度/特徵,其餘則捨棄。範例
>>> from sklearn import linear_model >>> clf = linear_model.ARDRegression() >>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2]) ARDRegression() >>> clf.predict([[1, 1]]) array([1.])
- fit(X, y)[原始碼]#
根據給定的訓練資料和參數擬合模型。
最大化證據的迭代過程
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like)
訓練向量,其中
n_samples
是樣本數,而n_features
是特徵數。- y形狀為 (n_samples,) 的類陣列 (array-like)
目標值(整數)。如有必要,將會轉換為 X 的 dtype。
- 回傳值:
- self物件
已擬合的估計器。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看 使用者指南,了解路由機制如何運作。
- 回傳值:
- routingMetadataRequest
一個
MetadataRequest
,封裝了路由資訊。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deepbool,預設值為 True
如果為 True,將回傳此估計器和所包含的子物件(也是估計器)的參數。
- 回傳值:
- paramsdict
參數名稱對應到它們的值。
- predict(X, return_std=False)[原始碼]#
使用線性模型進行預測。
除了預測分佈的平均值之外,也可以回傳其標準差。
- 參數:
- X形狀為 (n_samples, n_features) 的 {類陣列 (array-like), 稀疏矩陣}
樣本。
- return_stdbool,預設值為 False
是否回傳後驗預測的標準差。
- 回傳值:
- y_mean形狀為 (n_samples,) 的類陣列 (array-like)
查詢點預測分佈的平均值。
- y_std形狀為 (n_samples,) 的類陣列 (array-like)
查詢點預測分佈的標準差。
- 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
的期望值的常數模型,而忽略輸入特徵,會得到 \(R^2\) 分數 0.0。- 參數:
- X形狀為 (n_samples, n_features) 的類陣列 (array-like)
測試樣本。對於某些估計器,這可能是一個預先計算的核心矩陣,或是一個形狀為
(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
樣本權重。
- 回傳值:
- scorefloat
self.predict(X)
相對於y
的 \(R^2\)。
註解
在迴歸器上呼叫
score
時使用的 \(R^2\) 分數,從 0.23 版開始使用multioutput='uniform_average'
,以保持與r2_score
的預設值一致。這會影響所有多輸出迴歸器的score
方法(除了MultiOutputRegressor
)。
- set_params(**params)[原始碼]#
設定此估計器的參數。
此方法適用於簡單的估計器,也適用於巢狀物件(例如
Pipeline
)。後者的參數形式為<component>__<parameter>
,因此可以更新巢狀物件的每個組件。- 參數:
- **params**dict
估算器參數。
- 回傳值:
- self估算器實例
估算器實例。
- set_predict_request(*, return_std: bool | None | str = '$UNCHANGED$') ARDRegression [來源]#
請求傳遞到
predict
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時此方法才相關(請參閱sklearn.set_config
)。請參閱關於路由機制如何運作的 使用者指南。每個參數的選項如下:
True
:請求中繼資料,如果提供則傳遞給predict
。如果未提供中繼資料,則忽略該請求。False
:不請求中繼資料,並且元估算器不會將其傳遞給predict
。None
:不請求中繼資料,如果使用者提供中繼資料,則元估算器會引發錯誤。str
:應該使用此給定的別名而不是原始名稱將中繼資料傳遞給元估算器。
預設值 (
sklearn.utils.metadata_routing.UNCHANGED
) 會保留現有的請求。這允許您更改某些參數的請求,而其他參數則不更改。於 1.3 版本新增。
注意
只有當此估算器用作元估算器的子估算器時,此方法才相關,例如在
Pipeline
內部使用。否則它沒有任何作用。- 參數:
- return_stdstr、True、False 或 None,預設值=sklearn.utils.metadata_routing.UNCHANGED
predict
中return_std
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。
- set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') ARDRegression [來源]#
請求傳遞到
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
score
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。