sklearn.linear_model.ARDRegression

class sklearn.linear_model.ARDRegression(*, n_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, normalize=False, copy_X=True, verbose=False)

[源码]

贝叶斯ARD回归。

使用ARD先验拟合回归模型的权重。回归模型的权重假定服从高斯分布。还要估计参数lambda(权重分布的精度)和alpha(噪声分布的精度)。通过迭代过程(证据最大化)进行估算。

用户指南中阅读更多内容。

参数 说明
n_iter int, default=300
最大迭代次数。
tol float, default=1e-3
如果w收敛,则停止算法。
alpha_1 float, default=1e-6
超参数:高于alpha参数的Gamma分布的形状参数。
alpha_2 float, default=1e-6
超参数:优先于alpha参数的Gamma分布的反比例参数(速率参数)。
lambda_1 float, default=1e-6
超参数:高于lambda参数的Gamma分布的形状参数。
lambda_2 float, default=1e-6
超参数:优先于lambda参数的Gamma分布的反比例参数(速率参数)。
compute_score bool, default=False
如果为True,则计算模型每一步的目标函数。
threshold_lambda float, default=10000
从计算中高精度删除(修剪)权重的阈值。
fit_intercept bool, default=True
是否计算该模型的截距。如果设置为false,则在计算中将不使用截距(即,数据应居中)。
normalize bool, default=False
fit_intercept设置为False 时,将忽略此参数。如果为True,则在回归之前通过减去均值并除以l2-范数来对回归变量X进行归一化。如果你希望标准化,请先使用 sklearn.preprocessing.StandardScaler,然后调用fit 估算器并设置normalize=False
copy_X bool, default=True
如果为True,将复制X;否则X可能会被覆盖。
verbose bool, default=False
拟合模型时的详细模式。
属性 说明
coef_ array-like of shape (n_features,)
回归模型的系数(分布的均值)
alpha_ float
估计的噪声精度。
lambda_ array-like of shape (n_features,)
权重的估计精度。
sigma_ array-like of shape (n_features, n_features)
权重的估计方差-协方差矩阵
scores_ float
若计算,目标函数的值(待最大化)
intercept_ float
决策函数中的截距。如果fit_intercept = False则设置为0.0 。

有关示例,请参见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 Their beta is our self.alpha_ Their alpha is our self.lambda_ ARD is a little different than the slide: only dimensions/features for which self.lambda_ < self.threshold_lambda are kept and the rest are discarded.

示例

>>> from sklearn import linear_model
>>> clf = linear_model.ARDRegression()
>>> clf.fit([[0,0], [11], [22]], [012])
ARDRegression()
>>> clf.predict([[11]])
array([1.])

方法

方法 说明
fit(X, y) 根据给定的训练数据和参数拟合ARDRegression模型。
get_params([deep]) 获取此估计量的参数。
predict(X[, return_std]) 使用线性模型进行预测。
score(X, y[, sample_weight]) 返回预测的确定系数R ^ 2。
set_params(**params) 设置此估算器的参数。
__init__(*,n_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,normalize = False,copy_X = True,verbose = False )

[源码]

初始化self, 请参阅help(type(self))以获得准确的说明。

fit(X, y)

[源码]

根据给定的训练数据和参数拟合ARD回归模型。

迭代程序以最大化证据。

参数 说明
X array-like, shape [n_samples, n_features]
训练数据,其中n_samples是样本数量,n_features是特征数量。
y array-like, shape [n_samples]
目标值(整数)。如有必要,将强制转换为X的数据类型。
返回值 说明
self returns an instance of self.
get_params(deep=True)

[源码]

获取此估计量的参数。

参数 说明
deep bool, default=True
如果为True,则将返回此估算器和所包含子对象的参数。
返回值 说明
params mapping of string to any
参数名称映射到其值。
predict(X, return_std=False)

[源码]

使用线性模型进行预测。

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

参数 说明
X {array-like, sparse matrix} of shape (n_samples, n_features)
样本数据
return_std bool, default=False
是否返回后验预测的标准差。
返回值 说明
y_mean array-like of shape (n_samples,)
查询点的预测分布平均值。
y_std array-like of shape (n_samples,)
查询点的预测分布的标准偏差。
score(X, y, sample_weight=None)

[源码]

返回预测的确定系数R ^ 2。

系数R ^ 2定义为(1- 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 array-like of shape (n_samples, n_features)
测试样本。对于某些估计量,这可以是预先计算的内核矩阵或通用对象列表,形状为(n_samples,n_samples_fitted),其中n_samples_fitted是用于拟合估计器的样本数。
y array-like of shape (n_samples,) or (n_samples, n_outputs)
X的真实值。
sample_weight array-like of shape (n_samples,), default=None
样本权重。
返回值 说明
score float
预测值与真实值的R^2。

调用回归器中的score时使用的R2分数,multioutput='uniform_average'从0.23版开始使用 ,与r2_score默认值保持一致。这会影响多输出回归的score方法( MultiOutputRegressor除外)。

set_params(**params)

[源码]

设置此估计器的参数。

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

参数 说明
**params dict
估计器参数。
返回值 说明
self object
估计器实例。

sklearn.linear_model.ARDRegression使用示例