貝氏嶺迴歸#
- class sklearn.linear_model.BayesianRidge(*, max_iter=300, tol=0.001, alpha_1=1e-06, alpha_2=1e-06, lambda_1=1e-06, lambda_2=1e-06, alpha_init=None, lambda_init=None, compute_score=False, fit_intercept=True, copy_X=True, verbose=False)[原始碼]#
貝氏嶺迴歸。
擬合貝氏嶺模型。請參閱「注意事項」部分,以了解此實作的詳細資訊,以及正規化參數 lambda (權重的精確度) 和 alpha (雜訊的精確度) 的最佳化。
請參閱 使用者指南 中的更多資訊。如需使用不同初始值對來近似正弦波的多項式之直觀視覺化,請參閱 使用貝氏嶺迴歸進行曲線擬合。
- 參數:
- max_iterint, default=300
在停止之前,完整資料集的最大迭代次數,獨立於任何提前停止條件。
在 1.3 版本中變更。
- tolfloat, default=1e-3
如果 w 已收斂,則停止演算法。
- alpha_1float, default=1e-6
超參數:alpha 參數的 Gamma 分佈先驗的形狀參數。
- alpha_2float, default=1e-6
超參數:alpha 參數的 Gamma 分佈先驗的反向尺度參數(速率參數)。
- lambda_1float, default=1e-6
超參數:lambda 參數的 Gamma 分佈先驗的形狀參數。
- lambda_2float, default=1e-6
超參數:lambda 參數的 Gamma 分佈先驗的反向尺度參數(速率參數)。
- alpha_initfloat, default=None
alpha 的初始值 (雜訊的精確度)。如果未設定,則 alpha_init 為 1/Var(y)。
在 0.22 版本中新增。
- lambda_initfloat, default=None
lambda 的初始值 (權重的精確度)。如果未設定,則 lambda_init 為 1。
在 0.22 版本中新增。
- compute_scorebool, default=False
如果為 True,則在最佳化的每次迭代中計算對數邊際可能性。
- fit_interceptbool, default=True
是否計算此模型的截距。截距不會被視為機率參數,因此沒有相關的變異數。如果設為 False,則計算中不會使用截距(即預期資料會居中)。
- copy_Xbool, default=True
如果為 True,則會複製 X;否則,可能會被覆寫。
- verbosebool, default=False
在擬合模型時的詳細模式。
- 屬性:
- coef_形狀為 (n_features,) 的類陣列
迴歸模型的係數 (分佈的平均值)
- intercept_float
決策函數中的獨立項。如果
fit_intercept = False
,則設為 0.0。- alpha_float
雜訊的估計精確度。
- lambda_float
權重的估計精確度。
- sigma_形狀為 (n_features, n_features) 的類陣列
權重的估計變異數-共變異數矩陣
- scores_形狀為 (n_iter_+1,) 的類陣列
如果 computed_score 為 True,則在最佳化的每次迭代中,要最大化的對數邊際可能性值。陣列從 alpha 和 lambda 初始值獲得的對數邊際可能性值開始,並以估計的 alpha 和 lambda 獲得的值結束。
- n_iter_int
達到停止條件的實際迭代次數。
- X_offset_形狀為 (n_features,) 的 ndarray
如果
fit_intercept=True
,則為將資料居中到零均值而減去的偏移量。否則設為 np.zeros(n_features)。- X_scale_形狀為 (n_features,) 的 ndarray
設為 np.ones(n_features)。
- n_features_in_int
在 fit 期間看到的特徵數量。
在 0.24 版本中新增。
- feature_names_in_形狀為 (
n_features_in_
,) 的 ndarray 在 fit 期間看到的特徵名稱。僅當
X
具有全為字串的特徵名稱時才定義。在 1.0 版本中新增。
另請參閱
ARDRegression
貝氏 ARD 迴歸。
注意事項
存在幾種執行貝氏嶺迴歸的策略。此實作基於 (Tipping, 2001) 附錄 A 中描述的演算法,其中正規化參數的更新如 (MacKay, 1992) 中所建議。請注意,根據「自動關聯性判定的新觀點」(Wipf and Nagarajan, 2008),這些更新規則不保證邊際可能性在最佳化的兩個連續迭代之間會增加。
參考資料
D. J. C. MacKay, Bayesian Interpolation, Computation and Neural Systems, Vol. 4, No. 3, 1992.
M. E. Tipping, Sparse Bayesian Learning and the Relevance Vector Machine, Journal of Machine Learning Research, Vol. 1, 2001.
範例
>>> from sklearn import linear_model >>> clf = linear_model.BayesianRidge() >>> clf.fit([[0,0], [1, 1], [2, 2]], [0, 1, 2]) BayesianRidge() >>> clf.predict([[1, 1]]) array([1.])
- fit(X, y, sample_weight=None)[原始碼]#
擬合模型。
- 參數:
- X形狀為 (n_samples, n_features) 的 ndarray
訓練資料。
- y形狀為 (n_samples,) 的 ndarray
目標值。如有必要,將會轉換為 X 的 dtype。
- sample_weight形狀為 (n_samples,) 的 ndarray,預設為 None
每個樣本的個別權重。
0.20 版本新增:BayesianRidge 支援 sample_weight 參數。
- 回傳值:
- self物件
回傳實例本身。
- get_metadata_routing()[原始碼]#
取得此物件的中繼資料路由。
請查看 使用者指南 以了解路由機制如何運作。
- 回傳值:
- routingMetadataRequest
一個封裝路由資訊的
MetadataRequest
。
- get_params(deep=True)[原始碼]#
取得此估計器的參數。
- 參數:
- deepbool,預設為 True
如果為 True,將回傳此估計器及所包含的子物件(也是估計器)的參數。
- 回傳值:
- paramsdict
參數名稱對應到其值的字典。
- predict(X, return_std=False)[原始碼]#
使用線性模型進行預測。
除了預測分佈的平均值之外,也可以回傳其標準差。
- 參數:
- X形狀為 (n_samples, n_features) 的類陣列或稀疏矩陣
樣本。
- return_stdbool,預設為 False
是否回傳後驗預測的標準差。
- 回傳值:
- y_mean形狀為 (n_samples,) 的類陣列
查詢點的預測分佈平均值。
- y_std形狀為 (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
的期望值,而忽略輸入特徵的常數模型,其 \(R^2\) 分數會是 0.0。- 參數:
- 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
樣本權重。
- 回傳值:
- scorefloat
self.predict(X)
相對於y
的 \(R^2\)。
注意事項
在迴歸器上呼叫
score
時所使用的 \(R^2\) 分數,從 0.23 版本開始使用multioutput='uniform_average'
,以與r2_score
的預設值保持一致。這會影響所有多輸出迴歸器的score
方法(除了MultiOutputRegressor
之外)。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') BayesianRidge [原始碼]#
請求傳遞給
fit
方法的中繼資料。請注意,只有在
enable_metadata_routing=True
時,此方法才相關(請參閱sklearn.set_config
)。請參閱 使用者指南 以了解路由機制如何運作。每個參數的選項如下:
True
:請求中繼資料,如果有的話,則將其傳遞給fit
。如果未提供中繼資料,則忽略請求。False
:不請求中繼資料,且元估計器不會將其傳遞給fit
。None
:不請求中繼資料,如果使用者提供,則元估計器會引發錯誤。str
:中繼資料應使用此給定的別名,而非原始名稱,傳遞給元估計器。
預設值(
sklearn.utils.metadata_routing.UNCHANGED
)保留現有的請求。這讓您可以變更某些參數的請求,而保留其他參數的請求不變。在 1.3 版本中新增。
注意
只有在此估計器被用作元估計器的子估計器時,此方法才相關,例如在
Pipeline
內部使用。否則沒有作用。- 參數:
- sample_weightstr、True、False 或 None,預設為 sklearn.utils.metadata_routing.UNCHANGED
fit
中sample_weight
參數的中繼資料路由。
- 回傳值:
- self物件
更新後的物件。
- set_params(**params)[原始碼]#
設定此估計器的參數。
此方法適用於簡單的估算器,以及巢狀物件(例如
Pipeline
)。後者具有<component>__<parameter>
形式的參數,因此可以更新巢狀物件的每個組件。- 參數:
- **paramsdict
估算器參數。
- 回傳值:
- self估算器實例
估算器實例。
- set_predict_request(*, return_std: bool | None | str = '$UNCHANGED$') BayesianRidge [原始碼]#
請求傳遞至
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$') BayesianRidge [原始碼]#
請求傳遞至
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物件
更新後的物件。