文章目录
1. 集成学习(Ensemble Learning)
集成学习本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务,即:对于训练集数据,通过训练若干个个体学习器,再选取一定的结合策略,就可以最终形成一个强学习器。
2. Boosting
Boosting算法的工作机制是首先从训练集用初始权重训练出一个弱学习器1,根据弱学习1的学习误差率表现来更新训练样本的权重,使得之前弱学习器1学习误差率高的训练样本点的权重变高,使这些误差率高的点在后面的弱学习器2中得到更多的重视。然后基于调整权重后的训练集来训练弱学习器2.,如此重复进行,直到弱学习器数达到事先指定的数目T,最终将这T个弱学习器通过集合策略进行整合,得到最终的强学习器。
3. Bagging
Bagging的个体弱学习器的训练集是通过随机采样得到的。通过T次的随机采样,我们就可以得到T个采样集,对于这T个采样集,我们可以分别独立的训练出T个弱学习器,再对这T个弱学习器通过集合策略来得到最终的强学习器。(分类问题:对T个模型采用投票的方式得到分类结果;回归问题:对T个模型的值求平均得到回归预测结果)
4. Bagging和Boosting两者之间的区别
- 1)训练样本集
Bagging:训练集是有放回抽样,从原始集中选出的K组训练集是相互独立的。
Boosting:每一次迭代的训练集不变。 - 2)训练样本权重
Bagging:每个训练样本的权重相等,即1/N。
Boosting:根据学习器的错误率不断调整样例的权值,错误率越大,权值越大。 - 3)预测函数的权重:
Bagging:K组学习器的权重相等,即1/K。
Boosting:学习器性能好的分配较大的权重,学习器性能差的分配较小的权重。 - 4)并行计算
Bagging:K组学习器模型可以并行生成。
Boosting:K组学习器只能顺序生成,因为后一个模型的样本权值需要前一个学习器模型的结果。
5. 个体学习器结合策略
假设我得到的T个弱学习器是 { h 1 , h 2 , . . . h T } \{h_1,h_2,...h_T\} {h1,h2,...hT}
5.1 平均法
对于数值类的回归预测问题,通常使用的结合策略是平均法,对于若干个弱学习器的输出进行平均得到最终的预测输出。
- 算术平均:
-
每个个体学习器有一个无权重
H ( x ) = 1 T ∑ 1 T h i ( x ) H(x) = \frac{1}{T}\sum\limits_{1}^{T}h_i(x) H(x)=T11∑Thi(x) -
每个个体学习器有一个有权重
H ( x ) = ∑ i = 1 T w i h i ( x ) H(x) = \sum\limits_{i=1}^{T}w_ih_i(x) H(x)=i=1∑Twihi(x)w i ≥ 0 ,        ∑ i = 1 T w i = 1 w_i \geq 0 ,\;\;\; \sum\limits_{i=1}^{T}w_i = 1 wi≥0,i=1∑Twi=1
-
5.2 投票法
对于分类问题的预测,通常采用的是投票法。
- 相对多数投票,T个弱学习器的对样本x的预测结果中,数量最多的类别为最终的分类类别,如果不止一个类别获得最高票,则随机选择一个做最终类别;
- 绝对多数投票法,也就是我们常说的要票过半数,否则会拒绝预测;
- 加权投票法,每个弱学习器的分类票数要乘以一个权重,最终将各个类别的加权票数求和,最大的值对应的类别为最终类别;
5.3 学习法
-
学习法,代表方法是stacking,当使用stacking的结合策略时, 我们不是对弱学习器的结果做简单的逻辑处理,而是再加上一层学习器,也就是说,我们将训练集弱学习器的学习结果作为输入,将训练集的输出作为输出,重新训练一个学习器来得到最终结果。
-
总结
Bagging和Boosting方法都是把若干个学习器整合为一个学习器的方法,Bagging方法可以降低模型的方差,Boosting方法可以降低模型的偏差,在实际工作中,因情况需要选择集成方法。
下面是决策树与这些算法框架进行结合所得到的新的算法:
1) Bagging + 决策树 = 随机森林
2)AdaBoost + 决策树 = 提升树
3)Gradient Boosting + 决策树 = GBDT