《统计学习方法(李航)》决策树学习方法

  • 作者:jliang

    https://blog.csdn.net/jliang3

  •  
  • 1.重点归纳
  • 1)特征选择依据
  • ID3:信息增益最大:
  • C4.5:信息增益比最大:
  • ,n为特征A的取值个数,Di为特征A第i个取值的集合
  • CART:基尼指数/平方误差最小
  • 对于特征A的基尼指数:
  • 基尼指数:
  • 平方误差:
  • 2)损失函数
  • ID3/C4.5:(各结点的熵)
  • CART:,CT为预测误差,即误差平方/基尼指数

3)决策树可以是二叉树或非二叉树

(1)ID3和C4.5,离散值且不要求生成二叉树:此时用属性的每一个划分作为一个分支

(2)离散值且要求生成二叉树:使用属性划分一个子集进行测试,按照“属于此子集”和“不属于此子集”分为两个分支

(3)连续值:确定一个值作为分裂点split point,按>split point和<=split point生成两个分支。

4)ID3和C4.5只能用于分类,CART既可以用于分类也可以用于回归。

2.决策树模型与学习

1)决策树可以看成一个if-then规则集合,每一个实例都被一条路劲或规则所覆盖,而且只被一条路径或一条规则所覆盖。

2)决策树还表示给定特征条件下类的条件概率分布。

(1)每一条路径对应于划分的一个单元,决策树所表示的条件概率分布由各个单元给定条件下类的条件概率分布组成。

(2)表示为P(Y|X),X取值于给定划分下单元的集合,Y取值于类的集合,各叶结点上的条件概率属于某一类的概率较大。

(3)深浅不同的决策树对应着不同复杂度的概率模型。

3)决策树学习

(1)决策树学习本质是从训练数据集汇总归纳出一组分类规则。

(2)决策树学习的损失函数通常是正则化的极大似然函数。学习策略是以损失函数为目标函数的最小化。

(3)从所有可能的决策树中选取最优决策树时NP完全问题(Non-deterministic Polynomial,即多项式复杂程度的非确定性问题)。现实中决策树学习算法通常采用启发式方法,近似求解最优化问题。

(4)决策树学习算法包含特征选择、决策树生成与决策树剪枝过程。

(5)决策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择。决策树生成只考虑局部最优,决策树剪枝考虑全局最优

3. 特征选择

1)熵(entropy)是表示随机变量不确定性的度量(混乱程度)

(1)熵定义

(2)熵只依赖X的分布,而与X的取值无关

(3)熵越大,随机变量的不确定性就越大

(4)当每种类别的概率一样时,熵值最大。

 

2)条件熵

(1)随机变量X给定的条件下随机变量Y的条件熵

(2)

         ,n为X的取值个数

3)由于我们不知道真实的概率分布,所以熵和条件熵中的概率由数据估计(特别极大似然估计)得到,所对应的熵和条件熵分别称为经验熵和经验条件熵。

4)信息增益

(1)信息增益(information gain)表示得知特征X的信息而使得类Y的信息的不确定性减少的程度。

(2)特征A对训练数据集D的信息增益g(D,A):集合D的经验熵H(D)与特征A给定条件下D的经验条件熵H(D|A)之差,即

(3)决策树学习中的信息增益等价于训练数据集中类与特征的互信息

5)信息增益算法

(1)计算数据集D的经验熵

  • D为总样本数
  • Ck为类别k的数目

(2)计算特征A对数据集D的经验条件熵

  • n为特征X的取值数量
  • Di为特征X第i类取值的集合,Di为该集合的数量
  • Dik为特征X值第i类取值集合中第k类Y值取值集合,Dik为该集合的数量

(3)计算信息增益g(D,A)=HD-H(D|A)

6)信息增益计算例子

 

      

       有自己房子的信息增益最大,所以选择它为最优特征。

7)信息增益比

(1)信息增益分类的缺点:存在偏向于选择取值较多的特征的问题。使用信息增益比(information gain ratio)可以校正这问题。

(2)信息增益比:

  • ,n为特征A的取值个数,Di为特征A第i个取值的集合
  • HA(D)为特征A的经验熵(分裂信息),HD为为关于Y的经验熵

4.决策树生成

1)ID3

(1)核心是在决策树各个结点上的应用信息增益准则选择特征,递归地构建决策树。相当于用极大似然法进行概率模型的选择。

(2)ID3可以有多个分支(非二叉树),但不能处理特征值为连续值的情况。如果一个特征有N个取值,数据将切分N份(N个分支),该特征在之后的算法执行中不再起作用。

(3)缺点:一般会选取有较多属性值的特征,如标识ID。

2)C4.5

(1)C4.5在ID3的基础上进行了改进,C4.5生成过程使用信息增益比选择特征。

5.决策树的剪枝

1)决策树生成算法递归地产生决策树,直到不能继续下去为止,往往出现过拟合现象。解决这个问题的办法是考虑决策树的复杂度,对已生成的决策树进行简化,这个简化过程称为剪枝。

2)剪枝是从已生成的树上裁掉一些子树或结点,并将其根结点或父结点作为新的叶结点。

3)损失函数

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

(2)损失函数:

         经验熵:

         损失函数:

  • T的叶子结点个数为T
  • t是树T的叶结点,该叶结点有Nt个样本点
  • Ntk为叶结点t下类别k的数量

(3)CT表示模型对训练数据的预测误差,即模型与训练数据的拟合程度。T表示模型复杂度,参数α控制两者之间的影响。

  • 较大的α促使选择较简单的模型
  • 较小的α促使选择较复杂的模型
  • α=0意味着只考虑模型与训练数据的拟合程度,不考虑模型的复杂度。
  • 4)决策树生成只考虑通过提高信息增益/信息增益比对训练数据进行更好的拟合。而决策树剪枝通过优化损失函数还考虑了减小模型复杂度。

       决策树生成学习局部的模型,而决策树剪枝学习整体的模型。

5)剪枝步骤

(1)计算每个结点的经验熵

(2)递归地从树的叶结点向上回缩

         如果回缩后的损失函数值更小,则将父结点变成新的叶结点。

(3)返回(2),直至不能继续为止,得到损失函数最小的子树。

6.CART算法

1)CART既可以用于分类也可以用于回归。

2)CART决策树时二叉树,内部结点特征的取值为“是”和“否”,左分支取值“是”,右分支取值“否”。等价于地跪地二分每个特征,在输入给定条件下输出的条件概率分布。

3)CART组成

(1)决策树生成:基于训练数据生成决策树,生成的决策树要尽量打。

(2)决策树剪枝:用验证集数据集对已生成的树进行剪枝并选择最优子树,使用损失函数最小作为剪枝标准。

4)决策树的生成就是递归地构建二叉决策树的过程,对回归树用平方误差最小化准则,对分类树用基尼指数(Gini index)最小化准则,进行选择特征。

5)输入连续值变量时,按>split point和<=split point生成两个分支。

划分点split point的取值:把输入值从小到大排序,每两不同取值的平均值作为切分点。

6)最小二乘法回归树生成算法

(1)选择最优切分变量j与切分点s,求解损失函数

  • 选择损失最小值的变量j以及对应的切分点s作为最优特征
  • cm为结点单元Rm上所有值的平均值

(2)用选定的(j,s)划分区域并计算输出值

  • 划分条件:
  • 输出值(cm最优值):

(3)继续对两个子区域调用步骤(1)和(2),直至满足停止条件

(4)生成决策树模型(x属于那个区域,则使用该区域的平均值作为输出)

7)分类树用基尼指数选择最优特征,同时决定该特征的最优二值切分点。

8)基尼指数

(1)概率分布的基尼指数

(2)对于二分类问题,Ck是D中属于第k类的样本子集。

(3)特征A的条件下,集合D的基尼指数

(4)Gini(D)表示集合D的不确定性,Gini(D, A)表示经A=a分割后集合的不确定性。基尼指数越大,样本集合的不确定性就越大,这一点与熵相同。

9)例子

 

 

      

       由于Gini(D,年龄=青年)和Gini(D,年龄=老年)都是最小值,都可以作为切分点,所以年龄特征的最优切分点的Gini指数为0.44。

       同理求出

       Gini(D,有工作)=是=0.32

       Gini(D,有自己房子)=是=0.27

       Gini(D,信贷情况=非常好)=0.36Gini(D,信贷情况=好)=0.47Gini(D,信贷情况=一般)=0.32

       由上可得,GiniD,有自己房子=是=0.27值最小,选择该特征该切分点作为最优特征。

10)CART剪枝

(1)剪枝方法

a. 从生成算法产生的决策树T0底端开始不断剪枝,直到T0根结点,形成一个子树序列{T0,T1,…,Tn}

b. 通过交叉验证算法在独立的验证集上对子树序列进行测试,从中选择最优子树。

(2)损失函数:

  • CT为对训练数据的预测误差,回归树为平方误差,分类树为基尼指数

11)剪枝步骤

(1)设

(2)自下而上地对各内部结点t计算

  • :平方误差/基尼指数
  • :结点t以下子树的结点数量
  • 剪枝后整体损失函数减少的程度:
  • α=min⁡(α,g(t))

(3)对g(t)=α的内部结点t进行剪枝,并对叶结点t以多数表决决定其类,得到树T。

(4)设(得到新的子树)

(5)如果Tk不是由根结点以及两个叶结点构成的树,则回到步骤(3);否则Tk=Tn

(6)采用交叉验证法在子树序列中选择最优子树Tα。

 

 

猜你喜欢

转载自blog.csdn.net/jliang3/article/details/85226375
今日推荐