决策树构建

Posted KK——数据分析

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了决策树构建相关的知识,希望对你有一定的参考价值。

信息熵:

生活中的所见所闻,都接触到许许多多的信息,有的信息对我们有用,有的无用。如 “地球是自转的”,这条信息对我们没什么用,因为我们都知道,而且是确确实实是这样的。香农用信息熵的概念来描述信源的不确定度,变量的不确定性越大,熵也就越大。

 

在某个事件中,如果不发生的概率为0,那么可以确定信息熵为0,当发生的概率为1时,属于确定性事件,同样信息熵为0。只有当发生的概率为0.5 时,不确定程度则越大,熵也就越大。(如下图,x轴为发生的概率,y轴为熵)

 计算信息熵公式:(通常以2为对数底数)

 

其中 p(xi) 代表随机事件X为 x的概率。

 

 条件熵在满足某个条件下,随机变量的不确定性。

 

信息增益信息增益是特征选择的一个重要指标,表示在某个条件下,信息不确定性的减少程度。

简单来说:信息增益 = 信息熵 - 条件熵

信息增益率:信息增益率为信息增益与该特征的信息熵之比

 

决策树的构建,是基于 ID3算法 或 C4.5算法。

ID3算法:
分类预测算法,算法的核心是“信息熵”。ID3算法使用信息增益(Info-Gain),期望信息越小,信息增益越大,从而纯度越高,划分越好。ID3算法通过计算每个属性的信息增益,认为信息增益高的是好属性,每次划分选取信息增益最高的属性为划分标准,重复这个过程,直至生成一个能完美分类训练样例的决策树。
1. 所有属性必须为离散量;
2. 所有的训练的所有属性必须有一个明确的值;
3. 相同的因素必须得到结论且训练例唯一;
 
C4.5算法:
C4.5是ID3的一个改进算法。
使用信息增益率(Gain-ratio)选择属性;
1. 在树构造过程中进行剪枝;
2. 对连续属性离散化处理;
3. 对不完整数据进行处理;
 
优点:易于理解,准确率高;
缺点:构造过程中对数据集独处顺序扫描排序,至算法效率低。内存足够容纳数据。

 

示例: 通过信息增益构建分类决策树

其中,Gender,Education,MarStatus,City 为分类特征,IsPay 为结果。IsPay  中, “no” 个数为9,“yes” 个数为11。

即概率 p(Ispay = no) = 9 / 20 ,  p(Ispay = yes) = 11 / 20, 套用信息熵公式,计算 IsPay 的信息熵。

 

结果为:E(IsPay) = 0.992774453987808

 

现在以性别为例,计算信息熵和信息增益:

男性的信息熵为:0.995727899051793

 

女性的信息熵为:0.863121148140382

 

该性别平均熵为:0.949315536232799

信息增益为:0.043458917755009

 

 同样方法,将 Education,MarStatus,City 都计算出来,结果如下:

 

可以看到,学历 Education 的信息增益是最大的,数据集将以 Education 为条件,划分到三个子集。树型结构如下:

数据集如下:

可以看到 学历为 “研究生” 的节点, Ispay 都为 “yes” ,纯度很高,不需要再划分了。即当学历为研究生时,Ispay=‘yes’ 的概率为1。

 

数的第一层确定了,现在构建第二层,已学历为大专为例。计算结果如下:

 

在这个层级节点中, City 的信息增益最大,接下来将以城市来划分节点。

决策树构建结果如下:

 

 

 更多参考:

ch4.pdf-分类基本概念:决策树和模型评估

数据挖掘十大经典算法--CART: 分类与回归树

机器学习之决策树算法

 信息熵:https://www.zhihu.com/question/22178202

条件熵:https://www.zhihu.com/question/22104055

信息增益:https://zhuanlan.zhihu.com/p/26551798

 

以上是关于决策树构建的主要内容,如果未能解决你的问题,请参考以下文章

R构建决策树模型实战

决策树算法原理

sklearn实现决策树算法

性能分析之构建 Linux 操作系统分析决策树

Lesson 8.1 决策树的核心思想与建模流程

构建决策树时的终止标准