集成学习系列目录:
集成学习①——集成学习原理、分类和结合方法
集成学习②——Adaboost算法原理及python实现
一、Adaboost库参数介绍
Adaboost库分为AdaBoostClassifier(分类)和AdaBoostRegressor(回归),两者的参数相近,均包括Adaboost框架参数和使用的弱学习器参数,详细如下:
1、框架参数
① base_estimator: 弱学习器,AdaBoostClassifier和AdaBoostRegressor都有。理论上可以选择任何一个分类或者回归学习器,不过需要支持样本权重。常用的一般是CART决策树或者神经网络MLP。如果选择的AdaBoostClassifier算法是SAMME.R,则我们的弱分类学习器还需要支持概率预测,也就是在scikit-learn中弱分类学习器对应的预测方法除了predict还需要有predict_proba。
② n_estimators: 弱学习器数量,两者都有,一般来说n_estimators太小,容易欠拟合,n_estimators太大,又容易过拟合,一般选择一个适中的数值。默认是50。在实际调参的过程中,常常将n_estimators和下面介绍的参数learning_rate一起考虑。
③ learning_rate:弱学习器的权重缩减系数,取值范围为0~1。对于同样的训练集拟合效果,较小的ν意味着我们需要更多的弱学习器的迭代次数。通常我们用步长和迭代最大次数一起来决定算法的拟合效果。所以这两个参数n_estimators和learning_rate要一起调参。一般来说,可以从一个小一点的ν开始调参,默认是1。