机器学习中的树模型下——集成类树

来源:互联网 发布:大数据零售业案例 编辑:程序博客网 时间:2024/05/15 09:39

集成学习

集成学习顾名思义是通过构建并结合集成多个学习器来完成学习任务,有时也被称为多分类系统。集成学习要获得好的结果应做到“好而不同”,即个体学习器要有一定的准确性,并且学习器之间应该有差异。

目前集成学习的方法大致可以分为两种:

1、个体学习器之间存在强依赖关系、必须串行生成的序列化方法。(Boosting)
2、个体学习器之间不存在强依赖关系、可同时生成的并行化方法
。(Bagging和RF)

Boosting:

Boosting是一族将弱学习器提升为强学习器的算法。工作机制如下:先从初始训练集中训练出一个基学习器,再根据基学习器的表现对训练样本进行调整,使得先前基学习器做的训练样本在后继受到更多的关注,然后基于调整后的样本分布来训练下一个基学习器;如此重复进行,直至基学习器的数目达到实现指定的值T,最终将这T个学习器进行加权结合。
Boosting算法对样本的分布调整有两种策略:
1、训练得到基学习器之后,通过对样本从新赋予一个权重。
2、对于无法接受带权样本的学习器,则通过重采样来处理。
Boosting最著名的代表方法是AdaBoost。AdaBoost算法被认为是模型为加法模型,损失函数为指数函数、学习算法为前向分布算法时的二分类学习算法。
从偏差—方差分解的角度看:Boosting主要关注降低偏差,因此Boosting能能基于泛化性能相当弱的学习器构建出很强的集成。(基学习器为树模型时,树不要太深泛化性不好—关注偏差。
偏差:描述的是预测值(估计值)的期望与真实值之间的差距。偏差越大,越偏离真实数据。

Bagging:

Bagging是并行式集成学习方法的代表。使用自助采样(bootstrap sampling)即有放回抽样,训练多个学习器,在对训练输出
进行结合时,Bagging通常对分类器使用简单的投票法,对回归任务使用简单的平均法。
从偏差—方差分解的角度来看,Bagging主要关注降低方差,因此它在不剪枝决策树,神经网络等易受样本扰动的学习器上效果更显著。基学习器为树模型时,树深度不要太小—关注方差。

学习法(Stacking):
当训练样本很多时,一种更为强大的结合策略是使用“学习法”,即通过另一种学习器来进行结合。Stacking是学习法的代表,即通过类似于神经网络的叠加方式来进行堆叠。次级学习器使用初级学习器的输出(类别概率效果更佳)进行再次学习。为了防止过拟合,一般通过交叉验证或者留一发这样的方式,用初级学习器未使用的样本来产生次级学习器的训练样本。

在各类数据挖掘、机器学习比赛中几乎没有不用集成方法的,而且往往很复杂,则模型的过拟合问题,和评价方法则变得很重要,本人深有体会。

模型结合策略:
学习器结合带来3方面优点:
1、相对于单模型,会提高泛化性能,降低过拟合风险。
2、可以降低陷入局部最小点的风险(类似于多初值避免陷入局部最小)。
3、学习即是在假设空间中寻找最优的假设,结合学习器会使得,相对的假设空间有所扩大,有可能学习到等好的近似。

学习期的结合方法:
1、平均法:
简单平均法:同等对待每个学习器。
加权平均法:效果好的学习器更高的权重(权重一般通过训练数据中学习得来)。
一般而言,在个体学习器性能相差较大时宜使用加权平均法,在个体学习器性能相差不大是采样简单平均法。
2、投票法:
绝对多数投票法:如票数过半。
相对多数投票:得票最多。
加权投票法:与加权平均法类似。

树中的集成模型:

常见的包括:提升树(AdaBoostTree随机森林(RF)、梯度回归树(GBDT)。


提升树(AdaBoostTree

采用的是提升方法AdaBoost,基学习器是决策树(CART)。对于分类问题决策树是二叉分类树,回归问题是二叉回归树。

不同问题的提升树算法,其主要区别在于使用的损失函数不同,包括用平方误差损失函数的回归问题,用指数损失函数的分类问题,

及用一般损失函数的一般决策问题。

一般步骤是:1、训练一个简单的树模型。

     2、通过分来结果调整样本的分布(重采样或加权样本)。

     3、在训练一个树模型。

     4、重复前三步产生一定数量的树。通过线性组合方式得到最后的分类器。(分类准确率越高作用越大。)



随机森林(RF):

随机森林算法属于bagging类方法,只是和传统的bagging方法不同的是,传统的Bagging方法只有样本的自助采样(bootstrap sampling),

RF则增加了一个随机特征选择,使得模型的生成更具有鲁棒性,可以有效地减少过拟合现象。

RF(维度随机选择,boostrapping样本采样,bagging结合模型):
1、可以并行计算,提高效率。
2、具有决策树的所有优点。
3、可以有效地避免决策树的过拟合问题。
4、相对于一棵树,RF能做出来large-margin边界(支持向量机的目的),并且更平滑了。
5、通过投票可以对噪声具有鲁棒性。

实际应用中:通过测试多加一颗树减少一颗树来测试树的数量是否够,尽量多加树。



梯度回归树(GBDT):

GBDT属于AdaBoost类方法:

AdaBoost和GradientBoost:
AdaBoost损失函数是:exp指数函数。前向分布算法:每一步只优化加法模型的一个基函数及其系数。
GradientBoost损失函数是:任意的平滑可微函数。梯度下降算法:优化一个基函数。

下一篇比较(GBDT,XGBoost)


总结:








参考:

1、台大机器学习技法。

2、机器学习,周志华西瓜书

3、统计学习方法,李航




0 0