决策树、CART、GBDT、Xgboost学习笔记
一、决策树
决策树由结点和有向边组成,结点又分为内部结点和叶结点。从本质上来看,决策树的学习过程包括特征选择,决策树生成和决策树剪枝3个部分。
1.1决策树特征选择
所谓决策树特征选择即选择合适的特征作为结点对训练样本进行划分,通常使用信息增益或者信息增益比作为特征选择的标准。
-
信息增益
g(D,A)=H(D)−H(D|A)=−∑k=1K|Ck||D|log2|Ck||D|+∑i=1n|Di||D|H(Di)=−∑k=1K|Ck||D|log2|Ck||D|+∑i=1n|Di||D|∑k=1KDikDilog2|Dik||Di|
其中, D为训练集样本,Ck 表示第k类样本的集合,Ci 表示特征A的属性为第i个值的样本集合 -
信息增益比
gR(D,A)=g(D,A)HA(D)=g(D,A−∑ni=1|Di|Dlog2|Di||D|
总结:
以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题,使用信息增益比可以对这一问题进行校正。其对应的应用为,信息增益对应ID3算法,信息增益比对应C4.5算法。
1.2决策树生成算法
输入:训练数据D,特征集A,阈值
输出:决策树T
(1)若D中所有实例属于同一类
(2)若A=
(3)否则,按1.1中的方法计算A中各特征对D的信息增益或者信息增益比,选择我信息增益或者信息增益比最大的特征
(4)如果
(5)否则对
(6)对第i个子结点,以
1.3决策树剪枝
方法:极小化决策树整体的损失函数
损失函数定义:
在上式中,经验熵
其中,设树T的叶节点个数为|T|,t是树T的叶结点,该叶结点有
在损失函数中,
称这一项为预测误差,用来描述模型与训练数据的拟合程度。用|T|来表示模型的复杂度,使用参数
决策树剪枝算法:
输入:生成算法生成的整个树T, 参数
输出:修剪后的子树
(1)计算每个结点的经验熵
(2)递归的从树的叶结点向上回缩,如下图所示:
如果剪枝之后的损失函数比剪枝之前的损失函数小,则进行剪枝,其父结点变为新的叶结点
(3)返回(2),直至不能继续为止
二、CART
CART(classification and regression tree)分类回归树,其与一般决策树最大的变化是假设决策树是二叉树,内部结点特征的取值为‘是’和‘否’
2.1会归树的生成
一个回归树对应着输入空间(特征空间)的一个划分以及在划分单元的输出值。
假设已将一个输入空间划分为M个单元
2.1.1确立输出空间的值
当输入空间的划分确定时,使用平方误差来表示回归树对训练数据的预测误差
使用平方误差最小的准则求解每个单元上的最优输出值,对损失函数求偏导
令上式为0, 可求得最优解
2.1.2如何对输入空间进行划分
使用启发式的方法,选择第j个特征
想要寻找最优切分变量和最优且分点,即要使得对当前结点所有的特征和其取值,总的损失函数最小,可表示为
由此,可根据上面求得的最优
2.2分类树的生成
2.2.1 分裂准则-基尼指数
定义:
2.2.2 生成算法
对于给定的样本集D,其基尼指数为
这里,
样本集合D根据特征A是否取某一可能值a被分割成
在每一个结点,遍历多有的特征及其可能的取值,选取基尼指数最小的特征及其对应的且分点作为最优特征和最优切分点。递归调用直至满足停止条件。
算法停止的条件是结点中的样本个数小于预定阈值或样本集的基尼指数小于预定阈值或者没有更多特征。
2.2.3剪枝算法
输入:CART算法生成的决策树
输出:最优决策树
(1)设k=0,T=
(2)设
(3)自上而下地对各个内部结点t计算
(4)对
(5)设k=k+1,
(6)如果
(7)采用交叉验证法在子树序列
三、GBDT(Gradient boosting decision tree)
3.1 GBDT 回归树算法
提升树模型可以表示为决策树的加法模型:
在上式中,
提升树算法使用前向分步算法:
(1) 确定初始提升树
(2)第m步的模型:
在上式中,
在二中,CART回归树的输出结果是
当采用平方误差作为损失函数时,
则其算是函数为
说明:令
(3)梯度提升算法:
利用损失函数的负梯度在当前模型的值作为回归问题提升树算法中的残差的近似值,拟合一个回归树
其算法基本步骤:
(1)初始化
(2)对m=1,2,3,…,M
(a)对=1,2,…, N,计算残差
(b)对
(c)对j=1,2,3,…J,计算
(d)更新
(3)得到回归树
3.2GBDT分类树算法
未完待续….
参考文献:李航《统计学习方法》