目录 |
文中肯定有许多描述不恰当、理解不到位的地方,希望大神们拍正。另外文中一些段落是在引用了一些其它博文的话的基础上的理解,如有侵犯,请指正
1. 基础知识 |
1.1 决策树 |
决策树是一种基本的分类与回归方法,它可以认为是定义在特征空间与类空间的条件概率分布,决策树思想,实际上就是寻找最纯净的划分方法。决策树模型不同于线性模型,线性模型是所有特征赋予不同的权值相加得到结果,而决策树则是单个特征进行处理,每一步寻找一个最优特征进行划分。决策树与逻辑回归的不同之处也在于此,逻辑回归是根据所有特征求出概率,然后与某一阈值进行比较从而分类,而决策树每一步是通过最优特征进行划分,直到叶节点。决策树的学习过程主要包括3个步骤:特征选择、决策树的生成和决策树的剪枝。常用的算法有ID3算法、C4.5算法以及CART算法。
1.2 前向分步算法 |
1.3 负梯度 |
梯度提升树:提出了利用负梯度表示残差的近似值。
为什么采用损失函数的负梯度?
L(y,f(x))中将f(x)看成一个参数,为了使L损失函数最小,采用梯度下降的方法即:
f(x)_m=f(x)_m-1-(dL/df(x))//与一般的梯度下降法相同
而f(x)_m=f(x)_m-1+T(x;Q)//Q为前向分布法每次得到这棵树的参数,T(x;Q)为训练的新树
所以有f(x)_m-1+T(x;Q)=f(x)_m-1-(dL/df(x))
所以有T(x;Q)=-(dL/df(x))
左边为预测值,右边为真实值,所以整个过程就变成了每次拟合损失函数的负梯度的值。
所以可以将这种方法看成一般损失函数的情况,而平方损失是特殊的情况(拟合残差)
2. GBDT简介 |
GBDT是一个应用很广泛的算法,可以用来做分类、回归。GBDT这个算法还有其它名字,如MART(Multiple AdditiveRegression Tree),GBRT(Gradient Boost Regression Tree),TreeNet等等。Gradient Boost其实是一个框架,里面可以套入很多不同的算法
GBDT旨在不断减少残差(回归),通过不断加入新的树旨在在残差减少(负梯度)的方向上建立一个新的模型。——即损失函数是旨在最快速度降低残差。
GBDT通过多轮迭代,每轮迭代产生一个弱分类器,每个分类器在上一轮分类器的残差基础上进行训练。对弱分类器的要求一般是足够简单,并且是低方差和高偏差的。因为训练的过程是通过降低偏差来不断提高最终分类器的精度。弱分类器一般会选择为CART TREE(也就是分类回归树)。由于上述高偏差和简单的要求 每个分类回归树的深度不会很深。最终的总分类器 是将每轮训练得到的弱分类器加权求和得到的(也就是加法模型)。
模型最终可以描述为: