集成学习(Ensemble learning)是机器学习中近年来的一大热门领域。其中的
集成方法是用多种学习方法的组合来获取比原方法更优的结果
使用于组合的算法是弱学习算法
即分类正确率仅比随机猜测略高的学习算法
但是组合之后的效果仍可能高于强学习算法
即集成之后的算法准确率和效率都很高
装袋法(Bagging)其原理是通过组合多个训练集的分类结果来提升分类效果
装袋法由于多次采样,每个样本被选中的概率相同,因此噪声数据的影响下降,所以装袋法太容易受到过拟合的影响
提升法(Boosting)与装袋法相比每次的训练样本均为同一组,并且引入了权重的概念,给每个单独的训练样本都会分配个相同的初始权重。
然后进行T轮训练,每一轮中使用一个分类方法训练出一个分类模型,使用此分类模型对所有样本进行分类并更新所有样本的权重:分类正确的样本权重降低,分类错误的样本权重增加,从而达到更改样本分布的目的。
由此可知,每一轮训练后,都会生成一个分类模型,而每次生成的这个分类模型都会更加注意在之前分类错误的样本,从而提高样本分类的准确率。对于新的样本,将T轮训练出的T个分类模型得出的预测结果加权平均,即可得出最终的预测结果。
梯度提升决策树算法是利用梯度下降的思想,使用损失函数的负梯度在当前模型的值,作为提升树中残差的近似值,以此来拟合回归决策树。梯度提升决策树的算法过程如下:
1、初始化决策树,估计一个使损失函数最小化的常数构建一个只有根节点的树;
2、不断提升迭代:
3、经过若干轮的提升法迭代过程之后,输出最终的模型;
随机森林是专为决策树分类器设计的集成方式,是装袋法的一种拓展。
随机森林与装袋法采取相同的样本抽取方式。装袋法中的决策树每次从所有属性中选取一个最优的属性作为其分支属性,而随机森林算法每次从所有属性中随机抽取 t 个属性,然后从这 t 个属性中选取一个最优的属性作为其分支属性,这样就使得整个模型的随机性更强,从而使模型的泛化能力更强。
而对于参数t的选取,决定了模型的随机性,若样本属性共有M个, = 1意味着随机选择一个属性来作为分支属性,t=属性总数时就变成了装袋法集成方式,通常t的取值为小于log2(M+1)的最大整数。而随机森林算法使用的弱分类决策树通常为CART算法