决策树、GBDT与Xgboost详解

写在前面GBDT是一个系列算法,具有很好的性能,可以用于回归、分类、排序的机器学习任务,也是机器学习面试时常考的一个知识点,在这写下个人的一些理解,也当做个笔记。GBDT分为两部分,GB: Gradient Boosting和DT: Decision tree。GBDT算法是属于Boosting算法族的一部分,可将弱学习器提升为强学习器的算法,属于集成学习的范畴。决策树由于GBDT中的弱...
摘要由CSDN通过智能技术生成

写在前面

GBDT是一个系列算法,具有很好的性能,可以用于回归、分类、排序的机器学习任务,也是机器学习面试时常考的一个知识点,在这写下个人的一些理解,也当做个笔记。

GBDT分为两部分,GB: Gradient Boosting和DT: Decision tree。

GBDT算法是属于Boosting算法族的一部分,可将弱学习器提升为强学习器的算法,属于集成学习的范畴。

决策树

由于GBDT中的弱学习器采用的是决策树,在这儿我们先介绍下决策树。

顾名思义,决策树对应于数据结构中的树结构,可以认为是if-then规则的集合,具有可解释性、分类速度快等优点。

决策树的学习通常包含3个步骤:特征选择、决策树的生成和决策树的修剪。

决策树由结点和有向边组成,结点有两种类型:内部结点和叶子结点,内部结点表示一个特征或属性,叶子结点表示一个类。

分类时,根据内部结点的特征对样本进行测试,根据测试结果,分配到相应的子节点,递归直到到达叶子结点,则分类为叶子结点所在的类。

互斥且完备:每一个样本都被树的一条路径(一条规则)所覆盖,而且只被一条路径所覆盖。

决策树学习的本质是从训练数据中归纳出一组分类规则,由训练数据集估计条件概率模型。

决策树学习的算法通常是一个递归地选择最优特征,并根据该特征对训练数据进行分割。

决策树常用的算法有ID3、C4.5和CART。

特征选择

特征选择在于选取对训练数据具有分类能力的特征。通常的准则是信息增益或信息增益比。

信息增益

表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。

特征A对训练数据集D的信息增益 g ( D , A ) g(D,A) g(D,A),定义为集合D的经验熵与特征A给定条件下D的经验条件熵$H(D|A)
$之差,即:
g ( D , A ) = H ( D ) − H ( D ∣ A ) g(D, A) = H(D) - H(D|A) g(D,A)=H(D)H(DA)
信息增益大的特征具有更强的分类能力。

信息增益比

以信息增益作为划分训练数据集的特征,存在偏向于选择取值较多的特征的问题。使用信息增益比可以对这一问题进行校正。

特征A对训练数据集D的信息增益比 g R ( D , A ) g_{R}(D,A) gR(D,A)定义为其信息增益 g ( D , A ) g(D, A) g(D,A)与训练数据集D关于特征A的值的熵 H A ( D ) H_{A}(D) HA(D)之比,即:
g R ( D , A ) = g ( D , A ) H A ( D ) g_{R}(D, A) = \frac{g(D, A)}{H_{A}(D)} gR(D,A)=HA(D)g(D,A)

基尼指数

对于给定的样本集合D,其基尼指数为:
G i n i ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 Gini(D) = 1 - \sum_{k=1}^K(\frac{|C_{k}|}{|D|})^2 Gini(D)=1k=1K(DCk)2
C k C_{k} Ck是D中属于第k类的样本子集,K是类的个数。

如果样本集合D根据某特征被分隔成 D 1 D_{1} D1 D 2 D_{2} D2两部分:则在特征A条件下,集合D的基尼指数定义为:
G i n i ( D , A ) = ∣ D 1 ∣ ∣ D ∣ G i n i ( D 1 ) + ∣ D 2 ∣ ∣ D ∣ G i n i ( D 2 ) Gini(D, A) = \frac{|D_{1}|}{|D|}Gini(D_{1}) + \frac{|D_{2}|}{|D|}Gini(D_{2}) Gini(D,A)=DD1Gini(D1)+DD2Gini(D2)

基尼指数值越大,样本集合的不确定性也就越大。

平方误差最小化

这是针对回归任务来说的,在构建回归树时进行特征选取的准则。

ID3算法是使用信息增益准则来进行特征选择。
C4.5算法是使用信息增益比准则来进行特征选择。
CART算法是使用基尼指数和平方误差最小化来进行特征选择。

决策树的剪枝

决策树生成算法递归地产生决策树,直到不能继续下去为止。这样容易出现过拟合现象。

在决策树学习中将已生成的树进行简化的过程称为剪枝。

决策树的剪枝往往通过极小化决策树整体的损失函数或代价函数来实现。

CART算法

分类回归树(classification and regression tree, CART)是应用广泛的决策树学习算法。

CART假设决策树是二叉树,内部结点特征的取值为“是”和“否”,左边分支是取值为“是”的分支,右分支是取值为“否”的分支。

CART算法由以下两步组成:
(1)决策树生成:基于训练数据生成决策树,生成的决策树要尽量大;
(2)决策树剪枝:用验证数据集对已生成的树进行剪枝并选择最优子树,这时用损失函数最小作为剪枝的标准。

分类树的构建

分类树构建与上面的ID3算法和C4.5算法类似,这里就不再叙述。

回归树的构建

一个回归树对应着输入空间的一个划分以及在划分单元上的输出值,假设已将输入空间划分为M个单元 R 1 , R 2 , … , R M R_{1},R_{2},…,R_{M} R1,R2,,RM,并且在每个单元 R m R_{m} Rm上有一个固定的输出值 c m c_{m} cm,则回归树模型可表示为:
f ( x ) = ∑ m = 1 M c m I ( x ∈ R m ) f(x) = \sum_{m=1}^{M}c_{m}I(x\in R_{m}) f(x)=m=1McmI(xRm)
单元 R m R_m Rm上的 c m c_m cm的最优值 m ^ c \hat m_{c} m^c R m R_m Rm上所有输入样本 x i x_i xi对应的输出 y i y_i yi的均值。

如何进行划分,采用启发式的方法,选择第 j j j个变量 x ( j ) x^{(j)} x(j)和它取的值,作为切分变量和切分点,并定义两个区域:
R 1 ( j , s ) = x ∣ x

  • 1
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值