通俗理解:一个算法的能力是有限的,把多个算法模型集成在一起
Boosting方法(串行)
Boosting主要思想是将弱学习器组装成一个强学习器(通过加法模型将弱分类器进行线性组合)
训练集数据在学习过程中,通常根据它们的上一轮的分类准确率给予不同的权重,加弱学习器之后,数据通常会被重新加权,来强化对之前分类错误数据点的分类(每轮学习完,分类错误的,增加样本的权重,降低弱学习器的权重)
个体学习器之间存在强依赖关系,一系列个体学习器都需要串行生成,然后使用组合策略得到最终模型
Bagging方法(并行)
给定一个大小为n的数据集,从中均匀的有放回的选择M个大小为n的子集作为新的训练集,在M个训练集上使用分类、回归等算法,得到M个模型,通过平均值、投票等方法产生预测结果。
可以看出Bagging主要通过样本的扰动来增加基学习器之间的多样性,因此Bagging的基学习器应为那些对训练集十分敏感的不稳定学习算法,例如:神经网络与决策树等.
不同于AdaBoost的是,Bagging可以十分简单地移植到多分类、回归等问题。总的说起来则是:AdaBoost关注于降低偏差,而Bagging关注于降低方差。
① Bagging通过降低基分类器的方差,改善了泛化误差
② 其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起
③ 由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例
个体学习器之间不存在强依赖关系,一系列个体学习器可以并行生成,然后使用组合策略得到最终模型
Boosting和Bagging区别
| Bagging | Boosting | |
|---|---|---|
| 样本选择 | 采用Boostrap随机有放回抽样 | 每一轮训练集是不变的,改变的是样本的权重 |
| 样本权重 | 均匀采样,每个样本权重相等 | 根据错误率调整样本权重,错误率越大样本权重越小 |
| 预测函数 | 所以函数模型权重相等 | 误差小的权重大 |
| 各个预测模型并行计算 | 各个预测模型按顺序迭代生成 |
AdaBoost
带权重训练集 通过弱学习器训练,然后更新权重(误差大的权重变大),迭代下去,最后组成强学习器,学习器误差小的权重大
前一个弱分类器分错的样本的权重会得到加强,加权后的全体样本再拿来训练下一个弱分类器,知道达到某个预定的足够小的误差或达到预先指定的最大迭代次数
算法描述
算法思想
AdaBoost优缺点
提升树
对于回归问题的提升树,只需要简单的拟合当前模型的残差
对于分类问题的提升树,只需要新增树拟合y值即可达到损失最小
梯度提升树(GBDT)
在提升树的学习过程中,当损失函数是平方损失和指数损失的时候比较好优化,对于其他损失函数的太好优化
GBDT拟合的目标值是一个负梯度(连续值),因此学习器只有CART回归树
GBDT优缺点
随机森林(RandomForest)
能做2分类、多分类和回归,集成了很多棵决策树,可以减少过拟合
- 样本随机,有放回的随机采样
- 特征随机
- 简单做法:从原始特征中不重复的抽取一些特征
- 延伸做法:简单做法基础上,将某些特征线性合并,产生一系列组合特征
结合策略:
- 分类:投票,少数服从多数,最终输出类别就是得票最多的类别
- 回归:平均值,所以决策树输出值的均值
随机森林还起到特征选择的作用
当CART是分类树时,采用GINI系数作为节点分裂的依据
当CART是回归树时,采用样本最小方差作为节点分裂依据
随机森林优缺点
| 优点 | 缺点 |
|---|---|
| 像决策树一样,RF可以处理离散特征和连续特征,数据无需规范化,能扩展到多分类,不需要做特征缩放,能捕获非线性关系和特征间的影响 | 决策树个数很多时,训练时需要的时间和空间比较大 |
| 具有较高的准确率,不容易过拟合 | RF有好多不好解释的地方,类似黑盒模型 |
| 随机性的引入,使得RF不容易过拟合,有很好的抗噪声能力 | |
| 能处理高纬度数据,并且不用做特征选择 | |
| 可以得到变量的重要性排序 |
构建过程
- 从原始训练集中用拔靴法(Boostrap)随机的有放回的选出m个样本,进行n_tree次采样,产生n_tree次训练集
- 构建n_tree个决策树,每次未被抽到的样本组成n_tree个袋外(OOB)数据
- 对于单个决策树模型,每次分裂时,根据信息增益\信息增益比\GINI系数,选择最好的特征进行分裂
- 每棵树都这样分下去,直到该节点的所有训练样例都属于同一类
- 将生成的每颗决策树组成随机森林
RF特征选择时的优缺点
| 优点 | 缺点 |
|---|---|
| 高效,更简单的分割平面,更短的训练预测时间 | 计算代价大 |
| 泛化能力强,无用特征被移除,达到降维的效果 | 如果特征没有选好,会影响模型精度 |
| 可解释性增强 |
线性模型:通过OOB误差选择特征
非线性模型:通过不纯度降低选择特征