决策树和随机森林(1)

1.信息熵
   (1).熵
    熵代表随机分布不确定程度,熵越大,不确定越大。随机变量X熵的定义如下:
H ( X ) = i = 1 n p ( x i ) l o g p ( x i ) = x p ( x ) l o g p ( x ) d x H(X)=-\sum_{i=1}^{n}p(x_i)log\,p(x_i)=-\int_{x}p(x)log\,p(x)dx
   注:
    熵只依赖于随机变量的分布,与随机变量取值无关;
    定义0log0=0(因为可能出现某个取值概率为0的情况);
    熵越大,随机变量的不确定性就越大,分布越混乱,随机变量状态数越多。
   (2)联合熵
    推广到多维随机变量的联合分布,其联合信息熵为:
H ( X , Y ) = i = 1 n j = 1 m p ( x i , y j ) l o g p ( x i , y j ) H(X,Y)=-\sum_{i=1}^{n}\sum_{j=1}^{m}p(x_i,y_j)log \, p(x_i,y_j)
   (3)条件熵
    在X给定条件下,Y的条件概率分布的熵对X的数学期望,(X,Y)发生所包含的熵,减去X单独发生包含的熵:在X发生的情况下,Y发生“新”带来的熵。
H ( Y X ) = H ( X , Y ) H ( X ) = x , y p ( x , y ) l o g p ( x , y ) + x p ( x ) l o g p ( x ) = x , y p ( x , y ) l o g p ( x , y ) + x ( p ( x , y ) ) l o g p ( x ) = x , y p ( x , y ) l o g p ( x , y ) + x , y p ( x , y ) l o g p ( x ) = x , y p ( x , y ) l o g p ( x , y ) p ( x ) = x , y p ( x , y ) l o g p ( y x ) \begin{aligned} H(Y|X)=&H(X,Y)-H(X) \\ =&-\sum_{x,y}p(x,y)log\,p(x,y) + \sum_{x}p(x)log\,p(x)\\ =&-\sum_{x,y}p(x,y)log\,p(x,y) + \sum_x(\sum p(x,y))log\,p(x) \\ =&-\sum_{x,y}p(x,y)log\,p(x,y) + \sum_{x,y}p(x,y)log\,p(x)\\ =& - \sum_{x,y}p(x,y)log \frac{p(x,y)}{p(x)} \\ =&- \sum_{x,y}p(x,y)log\,p(y|x) \end{aligned}
    根据条件熵的定义式,可以得到
H ( Y X ) = x , y p ( x , y ) l o g p ( y x ) = x y p ( x , y ) l o g p ( y x ) = x y p ( y x ) p ( x ) l o g p ( y x ) = x p ( x ) y p ( y x ) l o g p ( y x ) = x p ( x ) ( y p ( y x ) l o g p ( y x ) ) = x p ( x ) H ( Y X = x ) \begin{aligned} H(Y|X)=&- \sum_{x,y}p(x,y)log\,p(y|x) \\ =&-\sum_{x}\sum_{y}p(x,y)log\,p(y|x)\\ =&-\sum_{x}\sum_{y}p(y|x)p(x)log\,p(y|x)\\ =&-\sum_xp(x)\sum_yp(y|x)log\,p(y|x)\\ =&\sum_xp(x)(-\sum_yp(y|x)log\,p(y|x))\\ =&\sum_xp(x)H(Y|X=x)\\ \end{aligned}
   (4)互信息
    一个随机变量由于已知另一个随机变量而减少的不确定性。
I ( X , Y ) = H ( X ) H ( X Y = y ) = H ( Y ) H ( Y X = x ) = H ( X ) + H ( Y ) H ( X , Y ) \begin{aligned} I(X,Y)=&H(X)-H(X|Y=y)=H(Y)-H(Y|X=x)\\ =&H(X)+H(Y)-H(X,Y) \end{aligned}
2.决策树学习算法
   (1) 决策树
    决策树是一种树形模型,其中每一个内部节点表示在一个属性上的测试,每个分支代表一个测试输出,每个叶节点代表一个类别。
    决策树采用的是自顶向下的递归方法,其基本思想是以信息熵为度量构造一颗熵值下降最快的树,到叶子节点处熵值为0,此时在每个节点中的实例都属于同一个类别。
    决策树特点:可以自学习,不需要使用者了解过多背景知识,只需要对训练数据做好标记,是一个有监督学习,从一类无序无规则的事务中推断出决策树表示的规则。决策树示意图如下:
在这里插入图片描述
   (2) 决策树生成算法
    建立决策数的关键是在当前状态下选择哪个属性作为分类依据。根据不同的目标函数,决策树主要有三种算法:ID3,C4.5,CART。
   (3)信息增益
    概念:表示得知特征A的信息而使得类X的不确定性减少的程度。当熵和条件熵中的概率由数据估计(特别是极大似然估计)得到时,所对应的熵和条件熵分别称为经验熵和经验条件熵。
    数学定义:特征A对训练数据集D的信息增益 g ( D , A ) g(D,A) ,定义为集合D的经验熵 H ( D ) H(D) 与特征A给定条件下D的经验条件熵 H ( D A ) H(D|A) 之差,即:
g ( D , A ) = H ( D ) H ( D A ) g(D,A)= H(D) - H(D|A)
    信息增益计算方法:
      记号:训练数据集D, D |D| 表示样本个数;设有K个类 C k ( k = 1 , 2 , , K ) C_k(k=1,2,\cdots,K) C k |C_k| 属于类 C k C_k 的样本个数,则有 k C k = D \sum_k|C_k|=|D| ;设特征A有n个不同的取值 { a 1 , a 2 , , a n } \{a_1,a_2,\cdots,a_n\} ,根特征A将D划分为n个子集 D 1 , D 2 , , D n D_1,D_2,\cdots,D_n D i |D_i| D i D_i 的样本个数,有 i D i = D \sum_i|D_i|=|D| ;记子集|D_i|中,属于类 C k C_k 的样本的集合为 D i k D_{ik} D i k |D_{ik}| D i k D_{ik} 的样本个数。
      计算方法:
      (i)计算数据D的经验熵 H ( D ) = k = 1 K C k D l o g C k D H(D)=-\sum_{k=1}^{K}\frac{|C_k|}{|D|}log\frac{|C_k|}{|D|}
      (ii)遍历所有特征,对特征A有:
         计算特征A对数据集D的经验条件熵 H ( D A ) H(D|A)
         计算A的特征增益 g ( D , A ) = H ( D ) H ( D A ) g(D,A)= H(D) - H(D|A)
         选择信息增益最大的特征作为当前的分裂特征。
      经验条件熵:
H ( D A ) = i , k p ( D k , A i ) l o g p ( D k A i ) = i , k p ( A i ) p ( D k A i ) l o g p ( D k A i ) = i = 1 n k = 1 K p ( A i ) p ( D k A i ) l o g p ( D k A i ) = i = 1 n p ( A i ) k = 1 K p ( D k A i ) l o g p ( D k A i ) = i = 1 n D i D k = 1 K D i k D i l o g D i k D i \begin{aligned} H(D|A)=&-\sum_{i,k}p(D_k,A_i)log\,p(D_k|A_i)\\ =&-\sum_{i,k}p(A_i) p(D_k|A_i)log\,p(D_k|A_i)\\ =&-\sum_{i=1}^{n}\sum_{k=1}^{K}p(A_i) p(D_k|A_i)log\,p(D_k|A_i)\\ =&-\sum_{i=1}^{n}p(A_i)\sum_{k=1}^{K}p(D_k|A_i)log\,p(D_k|A_i)\\ =&-\sum_{i=1}^{n}\frac{|D_i|}{|D|}\sum_{k=1}^{K}\frac{|D_{ik}|}{|D_i|}log\frac{|D_{ik}|}{|D_i|} \end{aligned}
   (4)信息增益率
g r ( D , A ) = ( D , A ) H ( A ) g_{r}(D,A)=\frac{(D,A)}{H(A)}
   (5)Gini系数
G i n i ( p ) = k = 1 K p k ( 1 p k ) = 1 k = 1 K p k 2 = 1 k = 1 K ( C k D ) 2 Gini(p)=\sum_{k=1}^{K}p_k(1-p_k)=1-\sum_{k=1}^{K}p_k^2=1-\sum_{k=1}^{K}(\frac{|C_k|}{|D|})^2
   (6)三种决策树学习算法
     ID3使用信息增益进行选择,取值多的属性,更容易使数据更纯,其信息增益更大,训练得到一颗庞大且深度较浅的树:不合理;
     C4.5使信息增益率;
     CART使用基尼系数。

发布了27 篇原创文章 · 获赞 0 · 访问量 1006

猜你喜欢

转载自blog.csdn.net/u014168855/article/details/104253039