6.1 API : AdaBoostClassifier与AdaBoostRegressor

1147-柳同学

发表文章数:593

首页 » 算法 » 正文


原网址


原网址

AdaBoostClassifier

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

描述

AdaBoost分类器

属性

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
集成中每个分类器的误差

方法
6.1 API : AdaBoostClassifier与AdaBoostRegressor

AdaBoostRegressor

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

描述

AdaBoost回归器

属性
6.1 API : AdaBoostClassifier与AdaBoostRegressor
方法
6.1 API : AdaBoostClassifier与AdaBoostRegressor

参数介绍

base_estimator : object, default=None
AdaBoostClassifier和AdaBoostRegressor都有,即我们的弱分类学习器或者弱回归学习器。理论上可以选择任何一个分类或者回归学习器,不过需要支持样本权重。我们常用的一般是CART决策树或者神经网络MLP。默认是决策树,即AdaBoostClassifier默认使用CART分类树DecisionTreeClassifier,而AdaBoostRegressor默认使用CART回归树DecisionTreeRegressor。另外有一个要注意的点是,如果我们选择的AdaBoostClassifier算法是SAMME.R,则我们的弱分类学习器还需要支持概率预测,也就是在scikit-learn中弱分类学习器对应的预测方法除了predict还需要有predict_proba。

n_estimators : int, default=50
AdaBoostClassifier和AdaBoostRegressor都有,就是我们的弱学习器的最大迭代次数,或者说最大的弱学习器的个数。一般来说n_estimators太小,容易欠拟合,n_estimators太大,又容易过拟合,一般选择一个适中的数值。默认是50。在实际调参的过程中,我们常常将n_estimators和下面介绍的参数learning_rate一起考虑。

learning_rate : float, default=1.
学习率通过learning_rate缩小每个分类器的贡献,在learning_rate和n_estimators之间需要权衡.
AdaBoostClassifier和AdaBoostRegressor都有;对于同样的训练集拟合效果,较小的意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。所以这两个参数n_estimators和learning_rate要一起调参。一般来说,可以从一个小一点的开始调参,默认是1

algorithm : {‘SAMME’, ‘SAMME.R’}, default=’SAMME.R’
这个参数只有AdaBoostClassifier有。主要原因是scikit-learn实现了两种Adaboost分类算法,SAMME和SAMME.R。两者的主要区别是弱学习器权重的度量,SAMME使用了对样本集误分类效果作为弱学习器权重,而SAMME.R使用了对样本集分类的预测概率大小来作为弱学习器权重。由于SAMME.R使用了概率度量的连续值,迭代一般比SAMME快,因此AdaBoostClassifier的默认算法algorithm的值也是SAMME.R。我们一般使用默认的SAMME.R就够了,但是要注意的是使用了SAMME.R, 则弱分类学习器参数base_estimator必须限制使用支持概率预测的分类器。SAMME算法则没有这个限制

loss : {‘linear’, ‘square’, ‘exponential’}, default=’linear’
这个参数只有AdaBoostRegressor有,Adaboost.R2算法需要用到。有线性‘linear’, 平方‘square’和指数 ‘exponential’三种选择, 默认是线性,一般使用线性就足够了,除非你怀疑这个参数导致拟合程度不好。它对应了我们对第k个弱分类器的中第i个样本的误差的处理,即:如果是线性误差,则;如果是平方误差,则,如果是指数误差,则,为训练集上的最大误差

random_state : int, RandomState instance or None, default=None
控制每次增强迭代时每个base_estimator给出的随机种子
为多个函数调用传递可重复输出的int值

未经允许不得转载:作者:1147-柳同学, 转载或复制请以 超链接形式 并注明出处 拜师资源博客
原文地址:《6.1 API : AdaBoostClassifier与AdaBoostRegressor》 发布于2021-01-21

分享到:
赞(0) 打赏

评论 抢沙发

评论前必须登录!

  注册



长按图片转发给朋友

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

Vieu3.3主题
专业打造轻量级个人企业风格博客主题!专注于前端开发,全站响应式布局自适应模板。

登录

忘记密码 ?

您也可以使用第三方帐号快捷登录

Q Q 登 录
微 博 登 录