AdaBoost模型原理及模型参数

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

from sklearn.ensemble import AdaBoostClassifier
AdaBoostClassifier?

输入以上代码可以查看官方说明文档。下面是对说明文档的编译:
base_estimator:含义:弱学习器类型
取值:一般选择决策树模型或MLP神经网络模型,默认为分类决策树模型。
n_estimators : 含义:弱学习器的最大迭代次数
取值:int型数据,默认取值50,如果训练集已经完美地训练好,算法可能会提前停止。
learning rate:弱学习器的权重缩减系数v
取值:取值范围是(0,1],取值较小意味着达到一定的误分类数或学习效果需要更多迭代次数和更多弱学习器,默认取值为1.0,即不缩减。
algorithm:算法
取值:取值为’SAMME’,代表使用对样本集分类的效果调整弱学习权重;取值为’SAMME.R’,代表使用对样本集分类的预测概率调整弱学习器权重。默认取值为’SAMME.R’
random_state:设置随机状态
取值:取值范围为{int型数据,RandomState实例,None}。如果为int型数据,则指定了随机数生成器的种子,每次运行的结果都是一致的;如果为RandomState实例,则指定了随机数生成器;如果为None,则使用默认的随机数生成器。默认取None

你可能感兴趣的:(Python,大数据)