传统算法(四)
集成算法
一、什么是集成算法?
集成学习(ensemble learning)是大概17年非常火的机器学习方法。因为它本身不是一个单独的机器学习算法,而是通过构建并结合多个机器学习器来完成学习任务。也就是我们常说的“博采众长”。
集成学习可以用于分类问题集成,回归问题集成,特征选取集成,异常点检测集成等等,可以说所有的机器学习领域都可以看到集成学习的身影。
- 集成算法目的:让机器学习效果更好
- 集成算特点:
(1)将多个分类方法聚集在一起,以提高分类的准确率(这些算法可以是不同的算法,也可以是相同的算法);
(2)集成学习法由训练数据构建一组基分类器,然后通过对每个基分类器的预测进行投票来进行分类;
(3)严格来说,集成学习并不算是一种分类器,而是一种分类器结合的方法;
(4)通常一个集成分类器的分类性能会好于单个分类器;
(5)如果把单个分类器比作一个决策者的话,集成学习的方法就相当于多个决策者共同进行一项决策。
本文会对集成算法中的三种算法:bagging、boosting和stacking来做一个简单的介绍。
二、bagging算法
bagging算法的全称是:bootstrap aggregation
特点是各个弱学习器之间没有依赖关系,训练多个分类器取平均,公式表达如下:
f ( x ) = 1 M ∑ i = 1 m f m ( x ) f(x) = \dfrac{1}{M}\sum^m_{i=1}f_m(x) f(x)=M1i=1∑mfm(x)
bagging算法中最典型的就是:随机森林(Random Forest Simplified)
随机:每次抽样的数据均采样随机,特征选择随机
总结来说:
(1)Bagging通过降低基分类器的方差,改善了泛化误差;
(2)其性能依赖于基分类器的稳定性;如果基分类器不稳定,bagging有助于降低训练数据的随机波动导致的误差;如果稳定,则集成分类器的误差主要由基分类器的偏倚引起;
(3)由于每个样本被选中的概率相同,因此bagging并不侧重于训练数据集中的任何特定实例。
三、boosting算法
从弱学习器开始加强,通过加权来进行训练,权值越高的样本在下一次训练中所占的比重越大,也就是说越难区分的样本在训练过程中会变得越来越重要。公式表达为:
f m ( x ) = f m − 1 ( x ) + a r g m i n ∑ i = 1 m L ( y i , f m − 1 ( x ) + h ( x i ) ) f_m(x)=f_{m-1}(x)+argmin\sum^m_{i=1}L(y_i,f_{m-1}(x)+h(x_i)) fm(x)=fm−1