集成学习模型的常见算法有Bagging算法和Boosting算法两种。随机森林模型是Bagging算法的典型代表,AdaBoost模型和GBDT模型则是Boosting算法的典型代表。
AdaBoost算法(Adaptive Boosting)以一种高度自适应的方式按顺序训练弱学习器。针对分类问题:AdaBoost算法根据前一次的分类效果调整数据的权重,在上一个弱学习器中分类错误的样本的权重会在下一个弱学习器中增加,分类正确的样本的权重则相应减少,并且在每一轮迭代时会向模型加入一个新的弱学习器。不断重复调整权重和训练弱学习器,直到误分类数低于预设值或迭代次数达到指定最大值,最终得到一个强学习器。
简单来说,AdaBoost算法的核心思想就是调整错误样本的权重,进而迭代升级。
为防止AdaBoost算法过拟合,可以向模型中加入正则化项——每个弱学习器的权重缩减系数v,又称为学习率(learning rate)。
权重缩减系数的取值范围为(0,1]。取值较小意味着要达到一定的误分类数或学习效果,需要的迭代次数更多,需要训练的弱学习器更多;取值较大意味着要获得相同的学习效果,需要的迭代次数更少,需要训练的弱学习器更少。
from sklearn.ensemble import AdaBoostClassifier
AdaBoostClassifier?
输入以上代码可以查看官方说明文档。下面是对说明文档的编译:
base_estimator:含义:弱学习器类型
取值:一般选择决策树模型或MLP神经网