BayesianRidge#

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)[source]#

贝叶斯岭回归。

拟合一个贝叶斯岭模型。有关此实现以及正则化参数 lambda(权重精度)和 alpha(噪声精度)优化的详细信息,请参阅“备注”部分。

用户指南中阅读更多内容。有关如何使用不同初始值对近似正弦曲线进行多项式拟合的直观可视化,请参阅使用贝叶斯岭回归进行曲线拟合

参数:
max_iterint, 默认值=300

在独立于任何早期停止准则之前,在完整数据集上的最大迭代次数。

1.3 版本中的变更。

tolfloat, 默认值=1e-3

如果 w 已收敛,则停止算法。

alpha_1float, 默认值=1e-6

超参数:Gamma 分布先验在 alpha 参数上的形状参数。

alpha_2float, 默认值=1e-6

超参数:Gamma 分布先验在 alpha 参数上的逆尺度参数(速率参数)。

lambda_1float, 默认值=1e-6

超参数:Gamma 分布先验在 lambda 参数上的形状参数。

lambda_2float, 默认值=1e-6

超参数:Gamma 分布先验在 lambda 参数上的逆尺度参数(速率参数)。

alpha_initfloat, 默认值=None

alpha(噪声精度)的初始值。如果未设置,alpha_init 为 1/Var(y)。

0.22 版本中新增。

lambda_initfloat, 默认值=None

lambda(权重精度)的初始值。如果未设置,lambda_init 为 1。

0.22 版本中新增。

compute_scorebool, 默认值=False

如果为 True,则在优化的每次迭代中计算对数边际似然。

fit_interceptbool, 默认值=True

是否计算此模型的截距。截距不被视为概率参数,因此没有相关的方差。如果设置为 False,则计算中不使用截距(即数据应已居中)。

copy_Xbool, 默认值=True

如果为 True,X 将被复制;否则,它可能会被覆盖。

verbosebool, 默认值=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

拟合过程中看到的特征数量。

0.24 版本中新增。

feature_names_in_形状为 (n_features_in_,) 的 ndarray

拟合过程中看到的特征名称。仅当 X 的所有特征名称均为字符串时才定义。

1.0 版本中新增。

另请参阅

ARDRegression

贝叶斯 ARD 回归。

备注

存在几种执行贝叶斯岭回归的策略。此实现基于 (Tipping, 2001) 附录 A 中描述的算法,其中正则化参数的更新按照 (MacKay, 1992) 的建议进行。请注意,根据 A New View of Automatic Relevance Determination (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)[source]#

拟合模型。

参数:
X形状为 (n_samples, n_features) 的 ndarray

训练数据。

y形状为 (n_samples,) 的 ndarray

目标值。如有必要,将转换为 X 的数据类型。

sample_weight形状为 (n_samples,) 的 ndarray, 默认值=None

每个样本的独立权重。

0.20 版本中新增: BayesianRidge 对 sample_weight 参数的支持。

返回:
selfobject

返回实例本身。

get_metadata_routing()[source]#

获取此对象的元数据路由。

请查看用户指南了解路由机制的工作原理。

返回:
routingMetadataRequest

一个包含路由信息的MetadataRequest 对象。

get_params(deep=True)[source]#

获取此估计器的参数。

参数:
deepbool, 默认值=True

如果为 True,将返回此估计器及其包含的作为估计器的子对象的参数。

返回:
paramsdict

参数名称及其对应的值的映射。

predict(X, return_std=False)[source]#

使用线性模型进行预测。

除了预测分布的均值外,还可以返回其标准差。

参数:
X形状为 (n_samples, n_features) 的 {类数组对象, 稀疏矩阵}

样本。

return_stdbool, 默认值=False

是否返回后验预测的标准差。

返回:
y_mean形状为 (n_samples,) 的类数组对象

查询点的预测分布均值。

y_std形状为 (n_samples,) 的类数组对象

查询点的预测分布标准差。

score(X, y, sample_weight=None)[source]#

返回测试数据的决定系数

决定系数 \(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 的默认值保持一致。这会影响所有多输出回归器(MultiOutputRegressor 除外)的 score 方法。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') BayesianRidge[source]#

请求传递给 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 参数的元数据路由。

返回:
selfobject

更新后的对象。

set_params(**params)[source]#

设置此估计器的参数。

此方法适用于简单估计器以及嵌套对象(例如 Pipeline)。后者具有 <component>__<parameter> 形式的参数,因此可以更新嵌套对象的每个组件。

参数:
**paramsdict

估计器参数。

返回:
self估计器实例

估计器实例。

set_predict_request(*, return_std: bool | None | str = '$UNCHANGED$') BayesianRidge[source]#

请求传递给 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 参数的元数据路由。

返回:
selfobject

更新后的对象。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') BayesianRidge[source]#

请求传递给 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 参数的元数据路由。

返回:
selfobject

更新后的对象。