集成学习:通过建立几个模型来解决单一预测问题;
工作原理:生成多个分类器/模型,各自独立地学习和作出预测。这些预测最后结合成组合预测,因此优于任何一个单分类的做出预测。(只要单分类器的表现不太差,集成学习的结果总是要好于单分类器的)
文章目录
1 集成学习的两个核心任务
- 任务一:如何 优化 训练数据 —> 主要用于解决 欠拟合 问题
- 任务二:如何 提升 泛化性能 —> 主要用于解决 过拟合 问题
2 Boosting和Bagging集成原理
2.1 Bagging集成过程
(1)采样 — 从所有样本里面,采样一部分
(2)学习 — 训练弱学习器
(3)集成 — 使用平权投票
- Bagging + 决策树/线性回归/逻辑回归/深度学习… = bagging集成学习方法
- 经过上面方式组成的集成学习方法:
(1)均可在原有算法上提高约2%左右的泛化正确率;
(2)简单, 方便, 通用。
2.2 Boosting集成过程
(1)初始化训练数据权重,初始权重是相等的
(2)通过这个学习器,计算错误率
(3)计算这个学习器的投票权重
(4)对每个样本进行重新赋权
(5)重复前面1-4
(6)对构建后的最后的学习器进加权投票
- 随着学习的积累从弱到强,简而言之:每新加入一个弱学习器,整体能力就会得到提升
- 代表算法:Adaboost,GBDT,XGBoost
- 梯度Boosting决策树(
GBDT
Gradient Boosting Decision Tree)
GBDT = 梯度下降 + Boosting + 决策树 XGBoost
XGBoost= 二阶泰勒展开+boosting+决策树+正则化
2.3 Bagging集成与Boosting集成的区别
集成算法区别 | Bagging集成 | Boosting集成 |
---|---|---|
数据方面 | 对数据进行采样训练 | 根据前一轮学习结果调整数据的重要性 |
投票方面 | 所有学习器平权投票 | 对学习器进行加权投票 |
学习顺序 | 学习是并行的,每个学习器没有依赖关系 | 学习是串行,学习有先后顺序 |
主要作用 | 主要用于提高泛化性能 (解决过拟合,也可以说降低方差) | 主要用于提高训练精度 (解决欠拟合,也可以说降低偏差) |
3 随机森林
- 在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。
- 随机森林 = Bagging集成 + 多个弱决策树
- 例如, 如果你训练了5个树, 其中有4个树的结果是True, 1个树的结果是False, 那么最终投票结果就是True
- 随机森林够造过程中的关键步骤(M表示特征数目):
(1)一次随机选出一个样本,有放回的抽样,重复N次(有可能出现重复的样本)
(2) 随机去选出m个特征, m <<M,建立决策树 - 思考1.为什么要随机抽样训练集?
如果不进行随机抽样,每棵树的训练集都一样,那么最终训练出的树分类结果也是完全一样的 - 思考2.为什么要有放回地抽样?
如果不是有放回的抽样,那么每棵树的训练样本都是不同的,都是没有交集的,这样每棵树都是“有偏的”,都是绝对“片面的”(当然这样说可能不对),也就是说每棵树训练出来都是有很大的差异的;而随机森林最后分类取决于多棵树(弱分类器)的投票表决。