AdaBoostClassifier#
- class sklearn.ensemble.AdaBoostClassifier(estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None)#
一个AdaBoost分类器。
一个AdaBoost [1] 分类器是一个元估计器,它首先在原始数据集上拟合一个分类器,然后在相同的数据集上拟合分类器的额外副本,但其中错误分类实例的权重被调整,使得后续的分类器更关注困难的情况。
该类基于 [2] 实现算法。
更多信息请参阅 用户指南 。
Added in version 0.14.
- Parameters:
- estimatorobject, default=None
用于构建增强集合的基础估计器。 需要支持样本权重,并且需要正确的
classes_
和n_classes_
属性。如果为None
,则基础估计器为DecisionTreeClassifier
,初始化为max_depth=1
。Added in version 1.2:
base_estimator
被重命名为estimator
。- n_estimatorsint, default=50
终止增强时的最大估计器数量。 在完美拟合的情况下,学习过程会提前停止。 值必须在
[1, inf)
范围内。- learning_ratefloat, default=1.0
在每次增强迭代中应用于每个分类器的权重。较高的学习率会增加每个分类器的贡献。
learning_rate
和n_estimators
参数之间存在权衡。 值必须在(0.0, inf)
范围内。- algorithm{‘SAMME’, ‘SAMME.R’}, default=’SAMME.R’
如果为 ‘SAMME.R’,则使用 SAMME.R 实数增强算法。
estimator
必须支持类概率的计算。 如果为 ‘SAMME’,则使用 SAMME 离散增强算法。 SAMME.R 算法通常比 SAMME 收敛更快,在更少的增强迭代中达到更低的测试误差。Deprecated since version 1.4:
"SAMME.R"
已弃用,将在版本 1.6 中移除。 ‘“SAMME”’ 将成为默认值。- random_stateint, RandomState instance or None, default=None
控制每次增强迭代中给每个
estimator
的随机种子。 因此,仅当estimator
暴露random_state
时使用。 传递一个 int 以在多次函数调用中获得可重复的输出。 请参阅 Glossary 。
- Attributes:
- estimator_estimator
用于构建集合的基础估计器。
Added in version 1.2:
base_estimator_
被重命名为estimator_
。- estimators_list of classifiers
拟合的子估计器集合。
- classes_ndarray of shape (n_classes,)
类标签。
- n_classes_int
类的数量。
- 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
AdaBoostRegressor
一个AdaBoost回归器,首先在原始数据集上拟合一个回归器,然后在相同的数据集上拟合回归器的额外副本,但其中实例的权重根据当前预测的误差进行调整。
GradientBoostingClassifier
GB 以向前逐步的方式构建一个加法模型。回归树拟合在二项式或多项式偏差损失函数的负梯度上。二元分类是只有一个回归树的特殊情况。
sklearn.tree.DecisionTreeClassifier
一种用于分类的非参数监督学习方法。 通过学习从数据特征推导出的简单决策规则,创建一个预测目标变量值的模型。
References
[1]Y. Freund, R. Schapire, “A Decision-Theoretic Generalization of on-Line Learning and an Application to Boosting”, 1995.
Examples
>>> 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, algorithm="SAMME", random_state=0) >>> clf.fit(X, y) AdaBoostClassifier(algorithm='SAMME', n_estimators=100, random_state=0) >>> clf.predict([[0, 0, 0, 0]]) array([1]) >>> clf.score(X, y) 0.96...
有关使用AdaBoost拟合一序列作为弱学习器的DecisionTrees的详细示例,请参阅 多类AdaBoost决策树 。
有关使用AdaBoost拟合由两个高斯分位数簇组成的两类非线性可分分类数据集的详细示例,请参阅 二分类AdaBoost 。
- decision_function(X)#
计算
X
的决策函数。- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
训练输入样本。稀疏矩阵可以是CSC、CSR、COO、DOK或LIL。COO、DOK和LIL被转换为CSR。
- Returns:
- score形状为 (n_samples, k) 的 ndarray
输入样本的决策函数。输出的顺序与 classes_ 属性的顺序相同。 二分类是一个特殊情况,其中
k == 1
,否则k == n_classes
。对于二分类, 值越接近-1或1意味着更像是classes_
中的第一个或第二个类。
- 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,)
预测的类别。
- predict_log_proba(X)#
预测X的类别对数概率。
输入样本的预测类别对数概率是通过集成中分类器的加权平均预测类别对数概率计算的。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
训练输入样本。稀疏矩阵可以是CSC、CSR、COO、DOK或LIL。COO、DOK和LIL被转换为CSR。
- Returns:
- pndarray,形状为 (n_samples, n_classes)
输入样本的类别概率。输出的顺序与 classes_ 属性的顺序相同。
- predict_proba(X)#
预测X的类别概率。
输入样本的预测类别概率是通过集成中分类器的加权平均预测类别概率计算的。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
训练输入样本。稀疏矩阵可以是CSC、CSR、COO、DOK或LIL。COO、DOK和LIL会转换为CSR。
- Returns:
- p形状为 (n_samples, n_classes) 的 ndarray
输入样本的类别概率。输出的顺序与 classes_ 属性的顺序相同。
- score(X, y, sample_weight=None)#
返回给定测试数据和标签的平均准确率。
在多标签分类中,这是子集准确率,这是一个严格的指标,因为你要求每个样本的每个标签集都被正确预测。
- Parameters:
- X形状为 (n_samples, n_features) 的类数组
测试样本。
- y形状为 (n_samples,) 或 (n_samples, n_outputs) 的类数组
` X`的真实标签。
- sample_weight形状为 (n_samples,) 的类数组,默认=None
样本权重。
- Returns:
- scorefloat
self.predict(X)
相对于y
的平均准确率。
- set_fit_request(*, sample_weight: bool | None | str = '$UNCHANGED$') AdaBoostClassifier #
Request metadata passed to the
fit
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed tofit
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it tofit
.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 infit
.
- 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$') AdaBoostClassifier #
Request metadata passed to the
score
method.Note that this method is only relevant if
enable_metadata_routing=True
(seesklearn.set_config
). Please see User Guide on how the routing mechanism works.The options for each parameter are:
True
: metadata is requested, and passed toscore
if provided. The request is ignored if metadata is not provided.False
: metadata is not requested and the meta-estimator will not pass it toscore
.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 inscore
.
- Returns:
- selfobject
The updated object.
- staged_decision_function(X)#
计算每个增强迭代中
X
的决策函数。此方法允许在每次增强迭代后进行监控(即确定测试集上的错误)。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
训练输入样本。稀疏矩阵可以是CSC、CSR、COO、DOK或LIL。COO、DOK和LIL被转换为CSR。
- Yields:
- scorendarray形状为 (n_samples, k) 的生成器
输入样本的决策函数。输出的顺序与 classes_ 属性的顺序相同。 二元分类是
k == 1
的特殊情况,否则k==n_classes
。对于二元分类, 值越接近-1或1意味着更像是classes_
中的第一类或第二类。
- staged_predict(X)#
返回分阶段的预测结果。
输入样本的预测类别是根据集成中分类器的加权平均预测计算的。
这个生成器方法在每次增强迭代后产生集成预测,因此允许监控,例如在每次增强后确定测试集上的预测。
- Parameters:
- X类似数组的形式 (n_samples, n_features)
输入样本。稀疏矩阵可以是CSC、CSR、COO、DOK或LIL。COO、DOK和LIL会转换为CSR。
- Yields:
- yndarray 形式的生成器 (n_samples,)
预测的类别。
- staged_predict_proba(X)#
预测X的类别概率。
输入样本的预测类别概率是通过集成中分类器的加权平均预测类别概率计算的。
这个生成器方法在每次提升迭代后产生集成预测的类别概率,因此允许监控,例如在每次提升后确定测试集上的预测类别概率。
- Parameters:
- X{array-like, sparse matrix},形状为 (n_samples, n_features)
训练输入样本。稀疏矩阵可以是CSC、CSR、COO、DOK或LIL。COO、DOK和LIL被转换为CSR。
- Yields:
- p形状为 (n_samples,) 的ndarray生成器
输入样本的类别概率。输出的顺序与 classes_ 属性的顺序相同。
- 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