树模型
1、决策树 ID3,C4.5,CART
2、随机森林RF
3、Adaboost
4、GBDT
5、XGboost
6、孤立森林(异常检测)
三、Adaboost
一、Adaboost的Boosting理解
Adaboost是集成学习中Boosting方式的代表。多个基学习器其串行执行,下一个学习器基于上一个学习器的经验,通过调整样本的权重,使得上一个错分的样本在下一个分类器更受重视而达到不断提升的效果。Adaboost集成多个学习器的关键在两点:
1)设置基学习器的权重 am=12log1−emem a m = 1 2 l o g 1 − e m e m
2)调整样本的权重 wm+1,i=wm,iZmexp(−amyiGm(xi)) w m + 1 , i = w m , i Z m e x p ( − a m y i G m ( x i ) )
相对随机森林的Bootstrap Sampling重采样技术,可以看出Adaboost的权重调整是有目的性,是基于上一个学习器的经验,这也导致Adaboost在基学习器层是串行的。另外值得探讨的是权重为何如此设置?
Adaboost算法采用的基学习器是二值函数(二叉树)模型(当然Adaboost的核心是采用Boosting的思想),下面先来看Adaboost算法的整个流程,后面分析Adaboost在设计上巧妙之处
输入: 训练集 D={ (x1y1),(x2,y2),…,(xN,yN)} D = { ( x 1 y 1 ) , ( x 2 , y 2 ) , … , ( x N , y N ) } ,其中 xi∈Rn x i ∈ R n , yi∈{ +1,−1} y i ∈ { + 1 , − 1 }
输出:强学习器 G(x) G ( x )
1)初始化权值 : D1=w11,w12,…,w1N D 1 = w 11 , w 12 , … , w 1 N , w1i=1N,i=1,2,…,N w 1 i = 1 N , i = 1 , 2 , … , N
2)训练M个基学习器,对 m=1,2...M m = 1 , 2... M
a)使用权值分布 Dm D m 与相应的基学习器算法得到第 m m 个基学习器
b)计算基学习器 Gm(x) G m ( x ) 的训练误差:
em=P(Gm(xi)≠yi)=∑NiwmiI(Gm(xi)≠yi)/∑Niwmi e m = P ( G m ( x i ) ≠ y i ) = ∑ i N w m i I ( G m ( x i ) ≠ y i ) / ∑ i N w m i
c)计算基学习器的权重
如果 em>12 e m > 1 2 : am=0 a m = 0 ,舍弃基学习器,样本权重更新与不更新一致
否则: am=12log1−emem a m = 1 2 log 1 − e m e m
d)更新样本的权重:
Dm+1=(wm+1,1,....,wm+1,i,…,wm+1,N) D m + 1 = ( w m + 1 , 1 , . . . . , w m + 1 , i , … , w m + 1 , N )
其中, wm+1,i=wmiZmexp(−amyiGm(xi)) w m + 1 , i = w m i Z m exp ( − a m y i G m ( x i ) )
这里 Zm Z m 是归一化因子: Z