AdaBoostClassifier#

class sklearn.ensemble.AdaBoostClassifier(estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='deprecated', random_state=None)[source]#

一个 AdaBoost 分类器。

AdaBoost [1] 分类器是一个元估计器(meta-estimator),它首先在原始数据集上拟合一个分类器,然后在新副本上拟合额外的分类器。在新副本中,错误分类实例的权重被调整,以便后续分类器更关注困难的案例。

此类实现了基于 [2] 的算法。

用户指南中了解更多信息。

0.14 版本新增。

参数:
estimator对象,默认为 None

用于构建增强集成模型的基础估计器。要求支持样本权重,并具有正确的 classes_n_classes_ 属性。如果为 None,则基础估计器是使用 max_depth=1 初始化的 DecisionTreeClassifier

1.2 版本新增: base_estimator 已重命名为 estimator

n_estimators整数,默认为 50

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

learning_rate浮点数,默认为 1.0

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

algorithm{'SAMME'},默认为 'SAMME'

使用 SAMME 离散提升算法。

自 1.6 版本弃用: algorithm 已弃用,并将在 1.8 版本中移除。此估计器仅实现 'SAMME' 算法。

random_state整数、RandomState 实例或 None,默认为 None

控制每次提升迭代中每个 estimator 给定的随机种子。因此,仅当 estimator 暴露 random_state 时才使用。传入一个整数可使多次函数调用产生可复现的输出。参见术语表

属性:
estimator_估计器

集成模型所基于的基础估计器。

1.2 版本新增: base_estimator_ 已重命名为 estimator_

estimators_分类器列表

已拟合的子估计器集合。

classes_形状为 (n_classes,) 的 ndarray

类别标签。

n_classes_整数

类别数量。

estimator_weights_浮点型 ndarray

增强集成模型中每个估计器的权重。

estimator_errors_浮点型 ndarray

增强集成模型中每个估计器的分类误差。

feature_importances_形状为 (n_features,) 的 ndarray

基于杂质的特征重要性。

n_features_in_整数

fit 期间观察到的特征数量。

0.24 版本新增。

feature_names_in_形状为 (n_features_in_,) 的 ndarray

fit 期间观察到的特征名称。仅当 X 的所有特征名称均为字符串时才定义。

1.0 版本新增。

另请参阅

AdaBoostRegressor

一种 AdaBoost 回归器,它首先在原始数据集上拟合一个回归器,然后在相同数据集上拟合额外的回归器副本,但根据当前预测的误差调整实例的权重。

GradientBoostingClassifier

GB 以前向分阶段的方式构建一个加性模型。回归树拟合在二项式或多项式偏差损失函数的负梯度上。二分类是一种特殊情况,其中只生成一棵回归树。

sklearn.tree.DecisionTreeClassifier

一种用于分类的非参数监督学习方法。通过学习从数据特征推断出的简单决策规则来创建预测目标变量值的模型。

参考文献

[1]

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

示例

>>> from sklearn.ensemble import AdaBoostClassifier
>>> from sklearn.datasets import make_classification
>>> X, y = make_classification(n_samples=1000, n_features=4,
...                            n_informative=2, n_redundant=0,
...                            random_state=0, shuffle=False)
>>> clf = AdaBoostClassifier(n_estimators=100, random_state=0)
>>> clf.fit(X, y)
AdaBoostClassifier(n_estimators=100, random_state=0)
>>> clf.predict([[0, 0, 0, 0]])
array([1])
>>> clf.score(X, y)
0.96

有关使用 AdaBoost 拟合决策树序列作为弱学习器的详细示例,请参阅多类别 AdaBoost 决策树

有关使用 AdaBoost 拟合由两个高斯分位数聚类组成的非线性可分分类数据集的详细示例,请参阅二类别 AdaBoost

decision_function(X)[source]#

计算 X 的决策函数。

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

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

返回:
score形状为 (n_samples, k) 的 ndarray

输入样本的决策函数。输出顺序与 classes_ 属性的顺序相同。二分类是一种特殊情况,其中 k == 1,否则 k==n_classes。对于二分类,接近 -1 或 1 的值分别表示更像 classes_ 中的第一个或第二个类别。

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

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

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

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

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

目标值。

sample_weight类数组对象,形状为 (n_samples,),默认为 None

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

返回:
self对象

已拟合的估计器。

get_metadata_routing()[source]#

抛出 NotImplementedError

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

get_params(deep=True)[source]#

获取此估计器的参数。

参数:
deep布尔值,默认为 True

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

返回:
params字典

参数名称映射到其值。

predict(X)[source]#

预测 X 的类别。

输入样本的预测类别通过集成模型中分类器的加权平均预测计算得出。

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

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

返回:
y形状为 (n_samples,) 的 ndarray

预测的类别。

predict_log_proba(X)[source]#

预测 X 的类别对数概率。

输入样本的预测类别对数概率通过集成模型中分类器的加权平均预测类别对数概率计算得出。

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

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

返回:
p形状为 (n_samples, n_classes) 的 ndarray

输入样本的类别概率。输出顺序与 classes_ 属性的顺序相同。

predict_proba(X)[source]#

预测 X 的类别概率。

输入样本的预测类别概率通过集成模型中分类器的加权平均预测类别概率计算得出。

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

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

返回:
p形状为 (n_samples, n_classes) 的 ndarray

输入样本的类别概率。输出顺序与 classes_ 属性的顺序相同。

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

返回给定数据和标签上的准确率

在多标签分类中,这是子集准确率,这是一个严格的指标,因为它要求每个样本的每个标签集都必须被正确预测。

参数:
X类数组对象,形状为 (n_samples, n_features)

测试样本。

y类数组对象,形状为 (n_samples,) 或 (n_samples, n_outputs)

X 的真实标签。

sample_weight类数组对象,形状为 (n_samples,),默认为 None

样本权重。

返回:
score浮点数

self.predict(X) 相对于 y 的平均准确率。

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

请求传递给 fit 方法的元数据。

请注意,此方法仅在 enable_metadata_routing=True 时才相关(参见 sklearn.set_config)。请参阅用户指南以了解路由机制的工作原理。

每个参数的选项如下:

  • True: 请求元数据,如果提供则传递给 fit。如果未提供元数据,则忽略该请求。

  • False: 不请求元数据,元估计器不会将其传递给 fit

  • None: 不请求元数据,如果用户提供元数据,元估计器将引发错误。

  • str: 元数据应使用此给定别名而非原始名称传递给元估计器。

默认值 (sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求而保留其他参数的请求。

1.3 版本新增。

注意

此方法仅当此估计器用作元估计器的子估计器时才相关,例如在 Pipeline 内部使用。否则,它不起作用。

参数:
sample_weight字符串、True、False 或 None,默认为 sklearn.utils.metadata_routing.UNCHANGED

fit 方法中 sample_weight 参数的元数据路由。

返回:
self对象

更新后的对象。

set_params(**params)[source]#

设置此估计器的参数。

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

参数:
**params字典

估计器参数。

返回:
self估计器实例

估计器实例。

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

请求传递给 score 方法的元数据。

请注意,此方法仅在 enable_metadata_routing=True 时才相关(参见 sklearn.set_config)。请参阅用户指南以了解路由机制的工作原理。

每个参数的选项如下:

  • True: 请求元数据,如果提供则传递给 score。如果未提供元数据,则忽略该请求。

  • False: 不请求元数据,元估计器不会将其传递给 score

  • None: 不请求元数据,如果用户提供元数据,元估计器将引发错误。

  • str: 元数据应使用此给定别名而非原始名称传递给元估计器。

默认值 (sklearn.utils.metadata_routing.UNCHANGED) 保留现有请求。这允许您更改某些参数的请求而保留其他参数的请求。

1.3 版本新增。

注意

此方法仅当此估计器用作元估计器的子估计器时才相关,例如在 Pipeline 内部使用。否则,它不起作用。

参数:
sample_weight字符串、True、False 或 None,默认为 sklearn.utils.metadata_routing.UNCHANGED

Metadata routing for sample_weight parameter in score.

返回:
self对象

更新后的对象。

staged_decision_function(X)[source]#

计算每次提升迭代中 X 的决策函数。

此方法允许在每次提升迭代后进行监控(即确定测试集上的误差)。

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

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

生成:
score形状为 (n_samples, k) 的 ndarray 生成器

输入样本的决策函数。输出顺序与 classes_ 属性的顺序相同。二分类是一种特殊情况,其中 k == 1,否则 k==n_classes。对于二分类,接近 -1 或 1 的值分别表示更像 classes_ 中的第一个或第二个类别。

staged_predict(X)[source]#

返回 X 的分阶段预测。

输入样本的预测类别通过集成模型中分类器的加权平均预测计算得出。

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

参数:
X类数组对象,形状为 (n_samples, n_features)

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

生成:
y形状为 (n_samples,) 的 ndarray 生成器

预测的类别。

staged_predict_proba(X)[source]#

预测 X 的类别概率。

输入样本的预测类别概率通过集成模型中分类器的加权平均预测类别概率计算得出。

此生成器方法在每次提升迭代后生成集成预测的类别概率,因此允许进行监控,例如在每次提升后确定测试集上的预测类别概率。

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

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

生成:
p形状为 (n_samples,) 的 ndarray 生成器

输入样本的类别概率。输出顺序与 classes_ 属性的顺序相同。

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

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

此生成器方法在每次提升迭代后生成集成模型的分数,因此允许进行监控,例如在每次提升后确定测试集上的分数。

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

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

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

X 的标签。

sample_weight类数组对象,形状为 (n_samples,),默认为 None

样本权重。

生成:
z浮点数