Scikit-learn AdaBoost算法库总结与实践

       在上篇的AdaBoost算法原理详细总结中,我们详细的探讨了AdaBoost的原理,并且了解到AdaBoost在学习的过程中以指数速率不断减少训练误差,且无限逼近于0。本篇我们就来探讨Scikit-learn AdaBoost算法库类的使用。
       本篇我们先对Scikit-learn AdaBoost算法库类进行概述;再对AdaBoostClassifier和AdaBoostRegressor参数进行解读;然后对Scikit-learn AdaBoost算法库进行经验总结;最后我们利用AdaBoost进行一个实践,可视化各参数对模型的影响。

1)Scikit-learn AdaBoost算法库类概述

       AdaBoost算法既可以做分类又可以做回归,分类对应AdaBoostClassifier,回归对应AdaBoostRegressor。当我们对AdaBoost进行调参时,主要对两部分内容进行调参,第一部门是对AdaBoost的框架进行调参,第二部分是对选择的弱分类器进行调参。本篇我们只讨论AdaBoost的框架参数。下面我们具体来看看AdaBoostClassifier和AdaBoostRegressor的框架常用参数。

2)AdaBoostClassifier框架常用参数

       class sklearn.ensemble.AdaBoostClassifier(base_estimator=None, n_estimators=50, learning_rate=1.0, algorithm=‘SAMME.R’, random_state=None)[source]

  • base_estimator,基分类器,默认None
           base_estimator可以是各种类型的弱分类器,当为None时,基分类器为深度为1的CART分类树。需要注意的是,当algorithm=“SAMME.R”时,基分类器必须支持样本概率的预测。
           另外,基分类器的参数对最终的分类效果也有很大的影响。

  • algorithm,实现分类的算法,默认SAMME.R
           AdaBoostClassifier独有参数,支持SAMME和SAMME.R(R代表real)输入,两者的主要区别是对基分类器权重的度量。SAMME使用我们上篇介绍的AdaBoost算法原理,利用样本分类效果对基学习器的权重进行度量,基分类器直接输出分类的标签。SAMME.R利用样本分类的预测概率大小对基分类器的权重进行度量,基分类器输出样本分类的概率值。这种依赖于类别概率的算法通常比依赖于分类器的更好。
            SAMME.R算法通常比SAMME更快地收敛,通过更少的提升迭代实现更低的测试误差。因此,实际应用中,SAMME.R是一个很好的默认值。需要注意的是,基分类器必须支持预测概率的输出。

  • n_estimators,基分类器的个数,默认50
           n_estimators为基分类器的最大个数,我们需要调整的超参数之一,通常和learning_rate一起调整。n_estimators太小,容易欠拟合,n_estimators太大,又容易过拟合。

  • learning_rate,基分类器的权重衰减系数,默认为1
           learning_rate是我们需要调整的另一个重要的超参数。在上一篇AdaBoost算法原理介绍中,根据前向学习算法,模型可以写为
    g t ( x ) = g t − 1 ( x ) + α t f t ( x ) g_t(x)=g_{t-1}(x)+\alpha_t f_t(x) gt(x)=gt1(x)+αtft(x)
    为了防止过拟合,sklearn加入了权重衰减系数 μ , μ ∈ ( 0 , 1 ] \mu,\mu\in (0,1] μ,μ(0,1],模型表达式变成:
    g t ( x ) = g t − 1 ( x ) + μ α t f t ( x ) g_t(x)=g_{t-1}(x)+\mu\alpha_t f_t(x) gt(x)=gt1(x)+μαtf

  • 5
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值