机器学习入门系列(2)–如何构建一个完整的机器学习项目,第九篇!
该系列的前八篇文章:
- 机器学习入门系列(2)–如何构建一个完整的机器学习项目(一)
- 机器学习数据集的获取和测试集的构建方法
- 特征工程之数据预处理(上)
- 特征工程之数据预处理(下)
- 特征工程之特征缩放&特征编码
- 特征工程(完)
- 常用机器学习算法汇总比较(上)
- 常用机器学习算法汇总比较(中)
常用机器学习算法汇总比较的最后一篇,介绍提升(Boosting)算法、GBDT、优化算法和卷积神经网络的基本原理、优缺点。
9. 提升(Boosting)方法
简述
提升方法(boosting)是一种常用的统计学习方法,在分类问题中,它通过改变训练样本的权重,学习多个分类器,并将这些分类器进行线性组合,提供分类的性能。
boosting 和 bagging
boosting 和 bagging 都是集成学习(ensemble learning)领域的基本算法,两者使用的多个分类器的类型是一致的。
Bagging
bagging也叫自助汇聚法(bootstrap aggregating),比如原数据集中有 N 个样本,我们每次从原数据集中有放回的抽取,抽取 N 次,就得到了一个新的有 N 个样本的数据集,然后我们抽取 S 个 N 次,就得到了 S 个有 N 个样本的新数据集,然后拿这 S 个数据集去训练 S 个分类器,之后应用这 S 个分类器进行分类,选择分类器投票最多的类别作为最后的分类结果。一般来说自助样本的包含有 63% 的原始训练数据,因为:
假设共抽取 N 个样本,则 N 次都没有抽到的概率是 p = ( 1 − 1 N ) N p=(1-\frac{1}{N})^N p=(1−N1)N
则一个样本被抽到的概率有 p = 1 − ( 1 − 1 N ) N p = 1- (1- \frac{1}{N})^N p=1−(1−N1)N
所以,当 N 很大时有: p = 1 − 1 e = 0.632 p = 1- \frac{1}{e} = 0.632 p=1−e1=0.632。
这样,在一次 bootstrap 的过程中,会有 36% 的样本没有被采样到,它们被称为 out-off-bag(oob),这是自助采样带给 bagging
的里一个优点,因为我们可以用 oob
进行**“包外估计”(out-of-bag estimate)**。
bagging 通过降低基分类器的方差改善了泛化误差,bagging 的性能依赖于基分类器的稳定性。如果基分类器是不稳定的,bagging 有助于减少训练数据的随机波动导致的误差,如果基分类器是稳定的,即对训练数据集中的微小变化是鲁棒的,则组合分类器的误差主要由基分类器偏移所引起的,这种情况下,bagging 可能不会对基分类器有明显的改进效果