LR、SVM、DT 等都是单个学习器的机器学习方法,而集成学习方法则不同,它并不是单个学习器,而是一个集成了多个 learner 的学习框架。
- 集成学习概念
- Bagging
- Boosting
- Stacking
1. 集成学习概念
我们经常所说的 ”三个臭皮匠赛过诸葛亮“ 则简要说明了集成学习方法的思想。即:将多个基础学习器通过某种方法整合到一起,则其学习效果可能大大优于单个强学习器。
那么,这个集成学习方法能够带来什么样的好处呢?
- 可以提升单个分类器的预测准确性。例如:单个学习器的性能上不来了,我们可以通过整合多个学习器来提升单个学习器的性能上限。
- 可以避免模型选择问题。例如:我们训练出的多个模型,要选择哪个呢?干脆我们就不选,将多个模型整合到一起使用。
关于构建一个集成学习系统,我们需要思考几个问题:
- 基习器使用不同的学习方法还是相同的?
- 这些基学习器应该注意哪些?
- 多个基学习器的集成策略有哪些?
1. 基础学习器使用不同的学习方法还是相同的?
基础学习器可以使用不同的学习模型,比如:将支持向量机、神经网络、决策树整合到一起作为一个集成学习系统。也可以使用相同的学习模型,比如,多个基学习器都使用决策树。
一般情况下,我们倾向于使用相同的学习模型。
2. 这些基础的学习器应该注意哪些?
- 基础学习器之间要存在差异性。比如:所有的基础学习器如果都相同的话,只需要一个就可以了,没必要搞这么多。那么,如何设置学习器之间的差异呢?
- 不同的学习器使用不同的训练集
- 不同的学习器使用不同的特征集
- 不同的学习器使用不同的模型参数
- 等等
- 基础学习器的能力不需要很强,只需要比随机猜测高一点就行,即:错误率是小于 50%。例如:
- 如果有 1 个基础学习器,则其错误率为 40%
- 如果有 2 个基础学习器,则其错误率为 40% * 40% = 16%
- 如果有 3 个基础学习器,则其错误率为 40% * 40% * 40% = 6.4%
- 所以,只要基础学习器的错误率在 50% 以下,其错误率会一直下降。
3. 多个基学习器的集成策略有哪些?
整合方式主要有两种:bagging、stacking、boosting。
2. bagging(Bootstrap aggregating)
bagging 的思想就是:
- 有放回的随机从样本集中进行 N 次采样,并训练 N 个有差异的学习器。
- 预测时,使用平权投票、多数表决,比如:1 多则结果为 1,0 多则结果为 0。
基于 bagging 思想的代表算法是:随机森林(Random Forest, RF)
2. Stacking
Stacking 先从初始训练集中训练出 N 个基础学习器,这 N 个基础学习器的预测输出作为元学习器的输入。
3. boosting
boosting 是一类用于将弱学习器提升为强学习器的算法,这一类算法的工作机制较为接近。其过程如下:
- 先从训练集中训练出一个基础学习器
- 基于前一个基学习器的不足训练下一个基础学习器
- 重复进行,直至基础学习器数目达到事先指定的数量
- 最终将这个 T 个学习器进行加权投票得出预测结果
从这个过程,我们可以看到:boosting 基础学习器的创建是串行的,即:Ck 学习器训练完了,Ck+1 才能进行训练,而并不是 bagging 支持并行训练基础学习器。
boosting 家族的经典算法有:Adaboost、XGBoost、LightGBM、Catboost
至此,本篇文章结束!