1700539627
1700539628
集成学习,Adaboost,梯度提升决策树
1700539629
1700539630
问题 集成学习有哪些基本步骤?请举几个集成学习的例子
1700539631
1700539632
难度:★★☆☆☆
1700539633
1700539634
分析与解答
1700539635
1700539636
集成学习一般可分为以下3个步骤。
1700539637
1700539638
(1)找到误差互相独立的基分类器。
1700539639
1700539640
(2)训练基分类器。
1700539641
1700539642
(3)合并基分类器的结果。
1700539643
1700539644
合并基分类器的方法有voting和stacking两种。前者是用投票的方式,将获得最多选票的结果作为最终的结果。后者是用串行的方式,把前一个基分类器的结果输出到下一个分类器,将所有基分类器的输出结果相加(或者用更复杂的算法融合,比如把各基分类器的输出作为特征,使用逻辑回归作为融合模型进行最后的结果预测)作为最终的输出。以Adaboost为例,其基分类器的训练和合并的基本步骤如下。
1700539645
1700539646
(1)确定基分类器:这里可以选取ID3决策树作为基分类器。事实上,任何分类模型都可以作为基分类器,但树形模型由于结构简单且较易产生随机性所以比较常用。
1700539647
1700539648
1700539649
(2)训练基分类器:假设训练集为{xi,yi},i=1,…,N,其中yi{−1,1},并且有T个基分类器,则可以按照如下过程来训练基分类器。
1700539650
1700539651
1700539652
1700539653
1700539654
1700539655
1700539656
1700539657
初始化采样分布D1(i)=1/N; 令 t = 1, 2,…, T 循环: 从训练集中,按照Dt分布,采样出子集;用St训练出基分类器ht;计算ht的错误率:,其中I[]为判别函数;计算基分类器ht权重;设置下一次采样
1700539658
1700539659
(12.1)
1700539660
1700539661
并将它归一化为一个概率分布函数。
1700539662
1700539663
1700539664
(3)合并基分类器:给定一个未知样本z,输出分类结果为加权投票的结果。
1700539665
1700539666
从Adaboost的例子中我们可以明显地看到Boosting的思想,对分类正确的样本降低了权重,对分类错误的样本升高或者保持权重不变。在最后进行模型融合的过程中,也根据错误率对基分类器进行加权融合。错误率低的分类器拥有更大的“话语权”。
1700539667
1700539668
另一个非常流行的模型是梯度提升决策树,其核心思想是,每一棵树学的是之前所有树结论和的残差,这个残差就是一个加预测值后能得真实值的累加量。
1700539669
1700539670
我们以一个视频网站的用户画像为例,为了将广告定向投放给指定年龄的用户,视频网站需要对每个用户的年龄做出预测。在这个问题中,每个样本是一个已知性别/年龄的用户,而特征则包括这个人访问的时长、时段、观看的视频的类型等。
1700539671
1700539672
例如用户A的真实年龄是25岁,但第一棵决策树的预测年龄是22岁,差了3岁,即残差为3。那么在第二棵树里我们把A的年龄设为3岁去学习,如果第二棵树能把A分到3岁的叶子节点,那两棵树的结果相加就可以得到A的真实年龄;如果第二棵树的结论是5岁,则A仍然存在−2岁的残差,第三棵树里A的年龄就变成−2岁,继续学。这里使用残差继续学习,就是GBDT中Gradient Boosted所表达的意思。
1700539673
1700539674
1700539675
1700539676
[
上一页 ]
[ :1.700539627e+09 ]
[
下一页 ]