前面我们介绍了一系列的算法,不同的算法有不同的适用范围,但是在实际解决问题的过程中,往往需要组合多个算法才能达到最优解。在机器学习中,将多种机器学习算法组合在一起来解决问题的方法,就被称为集成算法。集成算法是提高算法准确度的有效方法之一。
现实生活中常用的集成算法有装袋算法(
b
a
g
g
i
n
g
bagging
bagging),提升算法(
b
o
o
s
t
i
n
g
boosting
boosting)。
- 集成算法思想
b
a
g
g
i
n
g
bagging
bagging:先将训练集分离成多个子集,然后通过子集训练多个模型
b
o
o
s
t
i
n
g
boosting
boosting:训练多个模型组成一个序列,序列中每个模型都会修正前一个模型的错误
- b a g g i n g bagging bagging, b o o s t i n g boosting boosting区别
以下内容引用自 Bagging和Boosting 概念及区别
- 样本选择:
b a g g i n g bagging bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
b o o s t i n g boosting boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。 - 样例权重:
b a g g i n g bagging bagging:使用均匀取样,每个样例的权重相等
b o o s t i n g boosting boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。 - 预测函数:
b a g g i n g bagging bagging:所有预测函数的权重相等。
b o o s t i n g boosting boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。 - 并行计算:
b a g g i n g bagging bagging:各个预测函数可以并行生成
b o o s t i n g boosting boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
- 总结
这两种方法都是把若干个分类器整合为一个分类器的方法,只是整合的方式不一样,最终得到不一样的效果,将不同的分类算法套入到此类算法框架中一定程度上会提高了原单一分类器的分类效果,但是也增大了计算量。
下面是将决策树与这些算法框架进行结合所得到的新的算法:
bagging + 决策树 = 随机森林
adaboost + 决策树 = 提升树
gradient boosting + 决策树 = GBDT