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=Falsefit_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], [1, 1], [2, 2]], [0, 1, 2])
ARDRegression()
>>> clf.predict([[1, 1]])
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 估计器实例。 |