当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python sklearn AdaBoostClassifier用法及代码示例


本文简要介绍python语言中 sklearn.ensemble.AdaBoostClassifier 的用法。

用法:

class sklearn.ensemble.AdaBoostClassifier(base_estimator=None, *, n_estimators=50, learning_rate=1.0, algorithm='SAMME.R', random_state=None)

AdaBoost 分类器。

AdaBoost [1] 分类器是一个 meta-estimator,它首先在原始数据集上拟合分类器,然后在同一数据集上拟合分类器的其他副本,但调整错误分类实例的权重,以便后续分类器关注更多关于疑难案件。

此类实现称为AdaBoost-SAMME [2] 的算法。

在用户指南中阅读更多信息。

参数

base_estimator对象,默认=无

构建增强集成的基本估计器。需要支持样本加权,以及正确的classes_n_classes_ 属性。如果 None ,则基本估计量是 DecisionTreeClassifier max_depth=1 初始化。

n_estimators整数,默认=50

终止提升的估计器的最大数量。在完美契合的情况下,学习过程会提前停止。

learning_rate浮点数,默认=1.0

在每次提升迭代中应用于每个分类器的权重。更高的学习率会增加每个分类器的贡献。 learning_raten_estimators 参数之间存在折衷。

algorithm{‘SAMME’,‘SAMME.R’},默认=‘SAMME.R’

如果是“SAMME.R”,则使用 SAMME.R 实数提升算法。 base_estimator 必须支持类概率的计算。如果是“SAMME”,则使用 SAMME 离散增强算法。 SAMME.R 算法通常比 SAMME 收敛得更快,以更少的提升迭代实现更低的测试误差。

random_stateint、RandomState 实例或无,默认=无

在每次提升迭代中控制在每个 base_estimator 处给出的随机种子。因此,它仅在 base_estimator 公开 random_state 时使用。传递 int 以获得跨多个函数调用的可重现输出。请参阅词汇表。

属性

base_estimator_估计器

生成集成的基本估计量。

estimators_分类器列表

拟合sub-estimators 的集合。

classes_ndarray 形状 (n_classes,)

类标签。

n_classes_int

类的数量。

estimator_weights_浮点数数组

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

estimator_errors_浮点数数组

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

feature_importances_ndarray 形状 (n_features,)

基于杂质的特征重要性。

n_features_in_int

拟合期间看到的特征数。

feature_names_in_ndarray 形状(n_features_in_,)

拟合期间看到的特征名称。仅当 X 具有全为字符串的函数名称时才定义。

参考

1

Y. Freund, R. Schapire,“on-Line 学习的 Decision-Theoretic 泛化和提升的应用”,1995 年。

2
  1. Zhu、H. Zou、S. Rosset、T. Hastie,“多类 AdaBoost”,2009 年。

例子

>>> 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.983...

相关用法


注:本文由纯净天空筛选整理自scikit-learn.org大神的英文原创作品 sklearn.ensemble.AdaBoostClassifier。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。