决策树原理

决策树算法

特征选择方法

ID3

信息增益

C4.5

信息增益率(互信息)

CART

回归树:最小二乘法

分类树:基尼系数

2. ID3和信息增益

信息增益:当前特征为划分带来多少信息量,带来的信息越多,该特征就越重要,此时节点的“纯度”也就越高。

数据集:根据天气数据判断是否出去玩

ID

阴晴

温度

湿度

刮风

温度数

1

Sunny

Hot

High

False

28℃

2

Sunny

Hot

High

True

30℃

3

Overcast

Hot

High

False

32℃

4

Rainy

Mild

High

False

25℃

5

Rainy

Cool

Normal

False

20℃

6

Rainy

Cool

Normal

True

22℃

7

Overcast

Cool

Normal

True

30℃

8

Sunny

Mild

High

False

35℃

9

Sunny

Cool

Normal

False

20℃

10

Rainy

Mild

Normal

False

26℃

11

Sunny

Mild

Normal

True

25℃

12

Overcast

Mild

High

True

30℃

13

Overcast

Hot

Normal

False

35℃

14

Rainy

Mild

High

True

25℃

根据数据集可知:一共有14条数据,其中9天是出去玩,5天不出去玩,即9个正样本,5个负样本。用S(9+,5-)表示。

                     决策树原理


综上所述,显然,以“阴晴”为特征的信息增益最大,故根节点为“阴晴”。同理,根据信息增益大小来选择作为节点。重复以上步骤即可构建决策树。

使用信息增益选择最优特征,存在一定的问题:

倾向于选择拥有较多取值的特征

尤其是特征集中包含ID类特征时,ID类特征会最先被选择为分裂特征,但在该类特征上的分支对预测未知样本的类别并无意义,降低了决策树模型的泛化能力,也容易使模型易发生过拟合。

如:上面的数据集中,以“阴晴”为特征的,有三个分支,以“湿度”为特征的有2个分支,故倾向于“阴晴”为最优特征,但是数据集中有ID这个标签,它有14个分支,故系统在使用信息增益来选择最优特征时,会优先选择ID这个特征。故存在问题。

只能考察特征对整个系统的贡献,而不能具体到某个类别上

信息增益只适合用来做所谓“全局”的特征选择(指所有类都使用相同的特征集合),而无法做“本地”的特征选择(对于文本分类来讲,每个类别有自己的特征有自己的特征集合,因为有的词项对一个类别很有区分度,而对另一个类别则无足轻重)

为了弥补信息增益这一缺点,使用增益率方法来修正,做最优特征选择。

 

3. C4.5和信息增益率

决策树原理决策树原理


计算过程如下:

   首先计算分裂信息,再计算熵值,两者相比,即得到增益率。

   与信息增益相比,信息增益率的计算考虑了特征分裂数据集后所产生的子节点的数量和规模,而忽略任何有关类别的信息。


 

决策树原理

4. CART 分类和回归树(Classification And Regression Tree)

   一句话概括CART模型:

   CART模型是在给定输入随机变量X条件下求得随机变量Y的条件概率分布的学习方法。

  CART的假设是决策树是一个二叉树结构,内部节点特征取值为“是”,“否”如

             决策树原理

与其他决策树算法学习古城类别,CART算法也主要有两步组成:

决策树生成

基于训练集生成一个二分决策树

决策树剪枝

用验证集对已生成的二叉树进行剪枝,剪枝的标准是损失函数最小化。

 

由于分类树和回归树在递归构建二叉决策树的过程中,选择特征划分的准则不同。

二叉分类树

在递归构建过程中,采用基尼指数为特征选择标准

二叉回归树

在递归构建过程中,采用平方误差最小化为特征选择标准

4.1二叉分类树

  决策树原理

决策树原理

决策树原理


4.2二叉回归树

决策树原理决策树原理

用自己的话说:

   在当前特征Fi的情况下,特征值fid(Fi=fid)划分为左右两个子树,用最小二乘法(MSE均方误差)最小化,得到值V1,一直遍历,遍历完,得到最小的误差Vm。Vm所对应的特征Fm,和Fm对应的fidm即为划分特征和划分点。

5. 树剪枝处理

剪枝是决策树学习算法对付“过拟合”的主要手段

 

 

预剪枝

对每个结点在划分前先进行估计,若当前结点的划分不能带来决策树泛化性能提升,则停止划分并将当前结点标记为叶结点

后剪枝

先从训练集生成一颗完整的决策树,然后自底向上地对非叶结点进行考察,若将该结点对应的子树替换为叶结点能提高决策树泛化能力,则将该子树替换为叶子结点。

 

基于信息增益来进行剪枝操作

划分前后相比较

基于基尼指数来进行剪枝操作

公式Ca(T)=C(T)+a|T|

 

预剪枝

显著减少了决策树的训练时间开销和测试时间开销,但另一方面,有些分支的当前划分虽不能提升泛化性能、甚至可能导致泛化性能暂时下降,但在其基础上进行的后续划分却有可能导致性能显著提高;预剪枝基于“贪心”本质禁止这些分支展开,给预剪枝决策树带来了欠拟合 的风险。

后剪枝

后剪枝决策树的欠拟合风险很小,泛化性能往往优于预剪枝决策树。但后剪枝过程是在生成完全决策树之后进行的,并且要自底向上地对树中的所有非叶结点进行逐一考察,因此其训练时间开销比未剪枝决策树和预剪枝决策树都要大得多。