集成算法 (Ensemble methods)
集成类算法是一个较大的概念,其主要原理在于组合一系列较弱的分类算法形成一个新的算法。根据PAC理论框架,新算法的效果一定会得到提升。比如对一个分类问题,我们首先采用不同的简单算法进行分类,比如之前介绍的逻辑回归和决策树等算法。然后所有简单的算法的分类结果再进行投票,从而决定最终的分类结果。
集成算法常用的策略有两类:Bagging和Boosting。
Bagging的运用过程描述如下:
假设原始数据有n个数据点,我们首先从原始训练数据抽取多个训练集,每个训练集的样本大小同样为n。每一次从原始数据集中使用Bootstrapping(即有放回的抽样)得到n个数据点。一共进行k轮抽取,从而得到k个不完全相同的测试样本集。需要注意的是正是因为使用了有放回的抽样,每一个bootstrap 训练集里面有可能有数据点相同,但同时每一个bootstrap 训练集里,平均而言,会有36.8%的原始数据缺失。正是这个特点保证了每一个得到bootstrap训练集,虽然样本大小和原始数据相同,但他们和原始样本平均而言有36.8%的不同,并且彼此之间也不会完全相同。36.8%的得出是基于一个简单的概率计算。对于原始数据中的任意一个数据点,每一次不被抽中的概率为1-1/n