AdaBoostRegressor#

class sklearn.ensemble.AdaBoostRegressor(estimator=None, *, n_estimators=50, learning_rate=1.0, loss='linear', random_state=None)#

一个AdaBoost回归器。

一个AdaBoost [1] 回归器是一个元估计器,它首先在原始数据集上拟合一个回归器,然后在相同的数据集上拟合回归器的额外副本,但实例的权重根据当前预测的误差进行调整。因此,后续的回归器更多地关注困难的情况。

此类实现了称为AdaBoost.R2 [2]的算法。

更多信息请参阅 用户指南

Added in version 0.14.

Parameters:
estimatorobject, default=None

用于构建增强集合的基础估计器。 如果为 None ,则基础估计器为 DecisionTreeRegressor ,初始化为 max_depth=3

Added in version 1.2: base_estimator 重命名为 estimator

n_estimatorsint, default=50

终止增强的最大估计器数量。 在完美拟合的情况下,学习过程会提前停止。 值必须在 [1, inf) 范围内。

learning_ratefloat, default=1.0

在每次增强迭代中应用于每个回归器的权重。较高的学习率会增加每个回归器的贡献。 learning_raten_estimators 参数之间存在权衡。 值必须在 (0.0, inf) 范围内。

loss{‘linear’, ‘square’, ‘exponential’}, default=’linear’

在每次增强迭代后更新权重时使用的损失函数。

random_stateint, RandomState instance or None, default=None

控制每次增强迭代时给予每个 estimator 的随机种子。 因此,仅当 estimator 暴露 random_state 时才使用。 此外,它控制每次增强迭代时用于训练 estimator 的权重的引导。 传递一个 int 以在多次函数调用中获得可重复的输出。 请参阅 Glossary

Attributes:
estimator_estimator

用于生长集合的基础估计器。

Added in version 1.2: base_estimator_ 重命名为 estimator_

estimators_list of regressors

拟合的子估计器集合。

estimator_weights_ndarray of floats

增强集合中每个估计器的权重。

estimator_errors_ndarray of floats

增强集合中每个估计器的回归误差。

feature_importances_ndarray of shape (n_features,)

基尼不纯度特征重要性。

n_features_in_int

fit 期间看到的特征数量。

Added in version 0.24.

feature_names_in_ndarray of shape ( n_features_in_ ,)

fit 期间看到的特征名称。仅当 X 的特征名称均为字符串时定义。

Added in version 1.0.

See also

AdaBoostClassifier

一个AdaBoost分类器。

GradientBoostingRegressor

梯度增强分类树。

sklearn.tree.DecisionTreeRegressor

一个决策树回归器。

References

[1]

Y. Freund, R. Schapire, “A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting”, 1995.

[2]
  1. Drucker, “Improving Regressors using Boosting Techniques”, 1997.

Examples

>>> from sklearn.ensemble import AdaBoostRegressor
>>> from sklearn.datasets import make_regression
>>> X, y = make_regression(n_features=4, n_informative=2,
...                        random_state=0, shuffle=False)
>>> regr = AdaBoostRegressor(random_state=0, n_estimators=100)
>>> regr.fit(X, y)
AdaBoostRegressor(n_estimators=100, random_state=0)
>>> regr.predict([[0, 0, 0, 0]])
array([4.7972...])
>>> regr.score(X, y)
0.9771...

有关利用 AdaBoostRegressor 拟合一系列决策树作为弱学习者的详细示例,请参阅 AdaBoost 决策树回归

property feature_importances_#

基尼不纯度特征重要性。

数值越高,特征越重要。 特征的重要性计算为其带来的准则总减少量的(归一化)值。 它也被称为基尼重要性。

警告:基于不纯度的特征重要性对于高基数特征(许多唯一值)可能会产生误导。请参阅 sklearn.inspection.permutation_importance 作为替代方法。

Returns:
feature_importances_ndarray of shape (n_features,)

特征重要性。

fit(X, y, sample_weight=None)#

构建一个从训练集(X,y)中增强的分类器/回归器。

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

训练输入样本。稀疏矩阵可以是 CSC、CSR、COO、DOK 或 LIL。COO、DOK 和 LIL 被转换为 CSR。

yarray-like,形状为 (n_samples,)

目标值。

sample_weightarray-like,形状为 (n_samples,),默认=None

样本权重。如果为 None,则样本权重初始化为 1 / n_samples。

Returns:
selfobject

拟合的估计器。

get_metadata_routing()#

Raise NotImplementedError .

此估计器尚不支持元数据路由。

get_params(deep=True)#

获取此估计器的参数。

Parameters:
deepbool, 默认=True

如果为True,将返回此估计器和包含的子对象(也是估计器)的参数。

Returns:
paramsdict

参数名称映射到它们的值。

predict(X)#

预测X的回归值。

输入样本的预测回归值是通过集成中回归器的加权中值预测计算的。

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

训练输入样本。稀疏矩阵可以是CSC、CSR、COO、DOK或LIL。COO、DOK和LIL被转换为CSR。

Returns:
yndarray,形状为 (n_samples,)

预测的回归值。

score(X, y, sample_weight=None)#

返回预测的决定系数。

决定系数 \(R^2\) 定义为 \((1 - rac{u}{v})\) ,其中 \(u\) 是残差平方和 ((y_true - y_pred)** 2).sum() ,而 \(v\) 是总平方和 ((y_true - y_true.mean()) ** 2).sum() 。最好的可能得分是 1.0,它可能是负的(因为模型可能任意地差)。一个总是预测 y 的期望值的常数模型,忽略输入特征,将得到 \(R^2\) 得分为 0.0。

Parameters:
Xarray-like of shape (n_samples, n_features)

测试样本。对于某些估计器,这可能是一个预计算的核矩阵或一个形状为 (n_samples, n_samples_fitted) 的通用对象列表,其中 n_samples_fitted 是估计器拟合中使用的样本数量。

yarray-like of shape (n_samples,) or (n_samples, n_outputs)

X 的真实值。

sample_weightarray-like of shape (n_samples,), default=None

样本权重。

Returns:
scorefloat

\(R^2\) 相对于 yself.predict(X)

Notes

在调用回归器的 score 时使用的 \(R^2\) 得分从 0.23 版本开始使用 multioutput='uniform_average' 以保持与 r2_score 默认值一致。 这影响了所有多输出回归器的 score 方法(除了 MultiOutputRegressor )。

set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') AdaBoostRegressor#

Request metadata passed to the fit method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to fit if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to fit .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in fit .

Returns:
selfobject

The updated object.

set_params(**params)#

设置此估计器的参数。

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

Parameters:
**paramsdict

估计器参数。

Returns:
selfestimator instance

估计器实例。

set_score_request(*, sample_weight: bool | None | str = '$UNCHANGED$') AdaBoostRegressor#

Request metadata passed to the score method.

Note that this method is only relevant if enable_metadata_routing=True (see sklearn.set_config ). Please see User Guide on how the routing mechanism works.

The options for each parameter are:

  • True : metadata is requested, and passed to score if provided. The request is ignored if metadata is not provided.

  • False : metadata is not requested and the meta-estimator will not pass it to score .

  • None : metadata is not requested, and the meta-estimator will raise an error if the user provides it.

  • str : metadata should be passed to the meta-estimator with this given alias instead of the original name.

The default ( sklearn.utils.metadata_routing.UNCHANGED ) retains the existing request. This allows you to change the request for some parameters and not others.

Added in version 1.3.

Note

This method is only relevant if this estimator is used as a sub-estimator of a meta-estimator, e.g. used inside a Pipeline . Otherwise it has no effect.

Parameters:
sample_weightstr, True, False, or None, default=sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in score .

Returns:
selfobject

The updated object.

staged_predict(X)#

返回分阶段的预测结果。

输入样本的预测回归值是通过集成中回归器的加权中值预测计算的。

这个生成器方法在每次提升迭代后产生集成预测,因此允许监控,例如在每次提升后确定测试集上的预测。

Parameters:
X{array-like, sparse matrix},形状为 (n_samples, n_features)

训练输入样本。

Yields:
yndarray 形状为 (n_samples,) 的生成器

预测的回归值。

staged_score(X, y, sample_weight=None)#

返回X, y的分阶段得分。

这个生成器方法在每次提升迭代后产生集成得分,因此可以用于监控,例如在每次提升后确定测试集上的得分。

Parameters:
X{array-like, sparse matrix} of shape (n_samples, n_features)

训练输入样本。稀疏矩阵可以是CSC, CSR, COO, DOK, 或 LIL。COO, DOK, 和LIL会被转换为CSR。

yarray-like of shape (n_samples,)

X的标签。

sample_weightarray-like of shape (n_samples,), default=None

样本权重。

Yields:
zfloat