集成学习(Ensemble Learning)就是通过某种策略
将多个模型集成
起来,通过群体决策来提高决策准确率。为什么集成学习会好于单个学习器呢?原因可能有三:
- 训练样本可能无法选择出最好的单个学习器,由于没法选择出最好的学习器,所以干脆结合起来一起用;
- 假设能找到最好的学习器,但由于算法运算的限制无法找到最优解,只能找到次优解,采用集成学习可以弥补算法的不足;
- 可能算法无法得到最优解,而集成学习能够得到近似解。比如说最优解是一条对角线,而单个决策树得到的结果只能是平行于坐标轴的,但是集成学习可以去拟合这条对角线。
从训练集中随机抽取一定数量的样本
,重复多次构建多个基本分类器
,然后通过投票或平均来获得最终的预测结果。迭代地引入
新的弱学习器,并给予它们更多的关注度,达到逐步提高集成模型准确率的目的。每个弱学习器的预测结果都会参与到下一次迭代中
,如果预测错误,则会给这个样本一个更高的权重,并重新拟合一个新的学习器。这样,每个弱学习器都会关注于预测错误的样本,因此在多个弱学习器的组合下,集成模型的准确率得到了提高。Bagging算法和Boosting都属于集成算法,最重要的假设是:当弱模型被正确组合时,我们可以得到更精确和/或更鲁棒的模型。
- Bagging:利用多个过拟合的弱学习器来获得更好的效果。
- Boosting:利用多个欠拟合的弱学习器来获得更好的效果。
bagging | boosting |
---|---|
bagging算法通常考虑的是同质弱学习器,相互独立地并行 学习这些弱学习器,并按照某种确定性的平均过程 将它们组合起来。 |
boosting算法通常考虑的也是同质弱学习器。它以一种高度自适应 的方法顺序地学习 这些弱学习器(每个基础模型都依赖于前面的模型),并按照某种确定性的策略将它们组合起来。 |
bagging 的重点在于获得一个方差 比其组成部分更小 的集成模型 |
boosting 则将主要生成偏差 比其组成部分更低 的强模型(即使方差也可以被减小) |
Bagging采取的是随机有放回 的均匀取样每个样本的权重相同, |
Boosting的每一轮训练的样本是固定的 ,改变的是每个样本的权重 ,错误率越大的样本权重越大 |
Bagging所有预测函数权值相同 |
Boosting中误差越小的预测函数权值越大 |
Bagging 的各个预测函数可以并行生成 |
Boosting的各个预测函数必须按照顺序 迭代生成 |
⭐️将Bagging和Boosting分别和树模型结合分别生成:
Bagging+决策树=随机森林
Boosting+决策树=GBDT
【五分钟机器学习】随机森林(RandomForest):看我以弱搏强
什么是 GBDT(梯度提升树)?【知多少】
前面模型的预测结果与真实标签之间的差异
。学习这些残差
来进一步提高模型的预测性能
,从而有效提高模型的准确性。【五分钟机器学习】Adaboost:前人栽树后人乘凉
参考博客