第4章 决策树算法(一 理论讲解)

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u013162035/article/details/82793875

决策树(Decision Tree)是一种基本的分类与回归方法,本文主要讨论分类决策树。决策树模型呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。它可以认为是if-then规则的集合,也可以认为是定义在特征空间与类空间上的条件概率分布。相比朴素贝叶斯分类,决策树的优势在于构造过程不需要任何领域知识或参数设置,因此在实际应用中,对于探测式的知识发现,决策树更加适用。

4.1决策树理论

**定义:**分类决策树模型是一种描述对实例进行分类的树形结构。决策树由结点和有向边组成。结点有两种类型:内部节点和叶节点,内部节点表示一个特征或属性,叶节点表示一个类。 分类的时候,从根节点开始,对实例的某一个特征进行测试,根据测试结果,将实例分配到其子结点;此时,每一个子结点对应着该特征的一个取值。如此递归向下移动,直至达到叶结点,最后将实例分配到叶结点的类中。

4.1.1决策树ID3算法的信息论基础

1948年,大牛 香农提出了 ”信息熵(entropy)“ 的概念:一条信息的信息量大小和它的不确定性有直接的关系,要搞清楚一件非常非常不确定的事情,或者是我们一无所知的事情,需要了解大量信息,然而信息量的度量就等于不确定性的多少,这也是熵的来源。

在1970年代,一个叫昆兰(J.Ross. Quinlan)的大牛找到了用信息论中的熵来度量决策树的决策选择过程,方法一出,它的简洁和高效就引起了轰动,昆兰把这个算法叫做ID3。下面我们就看看ID3算法是怎么选择特征的。
首先,我们需要熟悉信息论中熵的概念。熵度量了事物的不确定性,越不确定的事物,它的熵就越大。

X X 是一个取有限个值的离散随机变量,其概率分布为
P ( X = z 1 ) = p i , i = 1 , 2 , . . . , n \color{red}P(X=z_1)=p_i,i=1,2,...,n

随机变量 X X 的熵的表达式如下:
H ( X ) = i = 1 n p i l o g p i \color{red}H(X)=-\sum_{i=1}^{n}p_ilogp_i

其中 n n 代表 X X n n 种不同的离散取值。而 p i p_i 代表了 X X 取值为 i i 的概率, l o g log 为以 2 2 或者 e e 为底的对数。当对数的底为 2 2 时,熵的单位为bit;为e时,单位为nat。
熵越大,随机变量的不确定性就越大。从定义可验证:
0 < H ( p ) < l o g n 0<H(p)<logn

为了很好的理解熵的概念,举个例子吧,比如 X X 2 2 个可能的取值,而这两个取值各为 1 / 2 1/2 X X 的熵最大,此时 X X 具有最大的不确定性。值为
H ( X ) = ( 1 / 2 l o g 1 / 2 + 1 / 2 l o g 1 / 2 ) = l o g 2 H(X)=-(1/2log1/2+1/2log1/2)=log2

如果一个值概率大于 1 / 2 1/2 ,另一个值概率小于 1 / 2 1/2 ,则不确定性减少,对应的熵也会减少。比如一个概率 1 / 3 1/3 ,一个概率 2 / 3 2/3 ,则对应熵为
H ( X ) = ( 1 / 3 l o g 1 / 3 + 2 / 3 l o g 2 / 3 ) = l o g 3 2 / 3 l o g 2 H(X)=-(1/3log1/3+2/3log2/3) = log3-2/3log2
l o g 3 2 / 3 l o g 2 < l o g 2 log3-2/3log2<log2

熟悉了一个变量 X X 的熵,很容易推广到多个个变量的联合熵,这里给出两个变量 X X Y Y 的联合熵表达式:
H ( X , Y ) = i = 1 n p ( x i , y i ) l o g p ( x i , y i ) \color{red}H(X,Y)=-\sum_{i=1}^{n}p(x_i,y_i)logp(x_i,y_i)

有了联合熵,又可以得到条件熵的表达式 H ( X Y ) H(X|Y) ,条件熵类似于条件概率,它度量了我们的 X X 在知道 Y Y 以后剩下的不确定性。表达式如下:
H ( X Y ) = i = 1 n p ( x i , y i ) l o g p ( x i y i ) = j = 1 n p ( y j ) H ( X y i ) \color{red}H(X|Y)=-\sum_{i=1}^{n}p(x_i,y_i)logp(x_i|y_i)= \sum_{j=1}^{n}p(y_j)H(X|y_i)

H ( X ) H(X) 度量了 X X 的不确定性,条件熵 H ( X Y ) H(X|Y) 度量了我们在知道 Y Y 以后 X X 剩下的不确定性,那么 H ( X ) H ( X Y ) H(X)-H(X|Y) 呢?从上面的描述大家可以看出,它度量了 X X 在知道 Y Y 以后不确定性减少程度,这个度量我们在信息论中称为互信息,记为 I ( X , Y ) I(X,Y) 。在决策树ID3算法中叫做信息增益。ID3算法就是用信息增益来判断当前节点应该用什么特征来构建决策树。信息增益大,则越适合用来分类。

参考文献:
[1]《机器学习》周志华著
[2]《统计学习方法》李航著

猜你喜欢

转载自blog.csdn.net/u013162035/article/details/82793875