美文网首页
集成学习之提升法

集成学习之提升法

作者: 吴霸格07 | 来源:发表于2018-09-18 00:22 被阅读0次

    AdaBoost

    • 定义
      AdaBoost最流行的提升法的一种方式之一,将几个弱学习器集合成一个强学习器的任意集成方法.Adaptive Boosting的缩写.它专注于对前序进行纠正,关注前序拟合不足的训练实例.

    • 使用步骤
      构建一个AdaBoost分类器,首先需要训练一个基础分类器(如决策树),用它对进行训练集进行预测.然后对错误分类的训练实例增加其相对权重,循环更新权重后再进行训练.

    • 缺点
      这种依序学习技术无法并行,只能在前一个预测期得到结果之后,调整新的预测器才能进行新的训练.在拓展方面,它的表现不如bagging和pasting.

    • scikit-learn的AdaBoost

    scikit-learn使用的是AdaBoost的多分类版本,叫做SAMME(http://goo.gl/Eji2vR)(基于多类指数损失函数的逐步添加模型).当只有两个类别的时候,SAMME等于AdaBoost.此外,如果预测器可以使用估算类别概率(即拥有predict_proba()方法),scikit-learn会使用SAMME的一个变种,即是SAMME.R(R代表real),它依赖的是类别概率而不是类别预测,通常表现更好.

    接下来使用使用Scikit-learn的AdaBoostClassifier训练一个AdaBoost分类器,它基于200个单层决策树(Decision Stump),即max_depth = 1,换句话说就是一个决策节点加两个叶节点.
    这里使用AdaBoostClassifier的默认基础估算器.

    from sklearn.ensemble import AdaBoostClassifier
    ada_clf = AdaBoostClassifier(
                  DecisionTreeClassifier(max_depth=1),n_estimatiors=200,
                  algorithm="SAMME.R",learning_rate=0.5
               )
    ada_clf.fit(X_train,Y_train)
    

    //algorithm['ælgərɪð(ə)m],算法
    //estimator['estɪmeɪtə],预测器,估量器
    //predict[prɪ'dɪkt],预测

    AdaBoost与梯度下降的区别:AdaBoost是在训练中不断加入新的预测期是模型效果更好,而梯度下降是不断调整单个预测器的参数使得成本函数最小化.

    相关文章

      网友评论

          本文标题:集成学习之提升法

          本文链接:https://www.haomeiwen.com/subject/ypnjnftx.html