2.1 Bagging和Boosting区别
Bagging算法和Boosting都属于集成算法,最重要的假设是:当弱模型被正确组合时,我们可以得到更精确和/或更鲁棒的模型。
- bagging算法通常考虑的是同质弱学习器,相互独立地并行学习这些弱学习器,并按照某种确定性的平均过程将它们组合起来。
- boosting算法通常考虑的也是同质弱学习器。它以一种高度自适应的方法顺序地学习这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。
bagging 的重点在于获得一个方差比其组成部分更小的集成模型,而 boosting 和 stacking 则将主要生成偏差比其组成部分更低的强模型(即使方差也可以被减小)
Bagging和Boosting 的主要区别
- Bagging采取Bootstraping的是随机有放回的取样,Boosting的每一轮训练的样本是固定的,改变的是每个样本的权重。
- Bagging采取的是均匀取样,每个样本的权重相同,Boosting根据错误率调整样本权重,错误率越大的样本权重越大
- Bagging所有预测函数权值相同,Boosting中误差越小的预测函数权值越大。
- Bagging 的各个预测函数可以并行生成;Boosting的各个预测函数必须按照顺序迭代生成
3. Bagging,Boosting二者之间的区别
Bagging和Boosting的区别:
1)样本选择上:
Bagging:训练集是在原始集中有放回选取的,从原始集中选出的各轮训练集之间是独立的。
Boosting:每一轮的训练集不变,只是训练集中每个样例在分类器中的权重发生变化。而权值是根据上一轮的分类结果进行调整。
2)样例权重:
Bagging:使用均匀取样,每个样例的权重相等
Boosting:根据错误率不断调整样例的权值,错误率越大则权重越大。
3)预测函数:
Bagging:所有预测函数的权重相等。
Boosting:每个弱分类器都有相应的权重,对于分类误差小的分类器会有更大的权重。
4)并行计算:
Bagging:各个预测函数可以并行生成
Boosting:各个预测函数只能顺序生成,因为后一个模型参数需要前一轮模型的结果。
将Bagging和Boosting分别和树模型结合分别生成:
- Bagging+决策树=随机森林
- Boosting+决策树=GBDT
那么,为什么集成学习会好于单个学习器呢?原因可能有三:
- 训练样本可能无法选择出最好的单个学习器,由于没法选择出最好的学习器,所以干脆结合起来一起用;
- 假设能找到最好的学习器,但由于算法运算的限制无法找到最优解,只能找到次优解,采用集成学习可以弥补算法的不足;
- 可能算法无法得到最优解,而集成学习能够得到近似解。比如说最优解是一条对角线,而单个决策树得到的结果只能是平行于坐标轴的,但是集成学习可以去拟合这条对角线。