决策树
概念
希望根据样本的若干个特征对其进行分类。
决策树是一种判别模型。
特征:\(X_1,X_2...X_m,Y\)
样本:\(x_1,x_2..x_n\)
可以进行二分类也可以进行多分类。一般来说使用决策树的时候特征取值都是离散的。最终想要学习到的是特征和标签之间的关系。
现在从列的角度出发,可能存在某一个特征,对于分类的作用大于其他的特征。考虑使用树,从根节点进行二分。设\(x_1\)为我们所选的对于分类作用最大的特征,把它作为根节点,\(x_1\)取1的样本放到左边,\(x_1\)取0的样本放到右边。同样对于其儿子,又可以选择分类作用次大的特征继续进行分类,注意,对于同层的节点,不一定选择相同的特征,而是应该选择分类效果最好的那个特征。不断分类下去直到叶子节点停止分类。叶子节点的样本的标签相同。
熵
设\(\Omega\)为概率空间,存在两个离散的随机变量\(X,Y\)。\(X\)取\(x_1,x_2...x_n\),\(Y\)取\(y_1,y_2...y_m\)。
定义\(P(X=x_i)=p(x_i)\),\(P(Y=y_j)=p(y_j)\)。根据全概率公式,\(\Sigma_{i=1}^n p(x_i)=1\),\(\Sigma_{j=1}^m p(y_j)=1\)。
现在来看他们的联合分布:\(P(X=x_i,Y=y_j)=p(x_i,y_j)\)
\(X\)的边缘分布:\(p(x_i)=\Sigma_{j=1}^m p(x_i,y_j)\)。
条件概率:\(P(X=x_i|Y=y_j)=\frac{P(X=x_i,Y=y_j)}{P(Y=y_j)}=\frac{p(x_i,y_j)}{p(y_j)}=p(x_i|y_j)\)。
\(H(X)=-\Sigma_{i=1}^np(x_i)logp(x_i)=\Sigma_{i=1}^np(x_i)log(\frac{1}{p(x_i)})>=0\)
那么熵什么时候等于0呢?\(p(x_1)=1,p(x_i)=0(i>1)\)。
那么熵是否存在极大值呢?是否能趋向正无穷呢?注意到\(p(x_i)\)的和是1,\(H(x)\leq log\Sigma_{i=1}^np(x_i)\frac{1}{p(x_i)}=logn\)。
注意这里的不等式实际上是根据琴声不等式得来的。
因此可以得到熵的范围:\([0, logn]\)
条件熵:\(H(X|Y)=-\Sigma_{j=1}^m p(y_j) (\Sigma_{i=1}^n p(x_i|y_i)log(p(y_i|x_i)))\)
\(H(X)-H(X|Y)=-\Sigma_{i=1}^n p(x_i)logp(x_i)+\Sigma_{j=1}^m p(y_j) (\Sigma_{i=1}^n p(x_i|y_i)log(p(y_i|x_i)))\\=-\Sigma_{i=1}^n p(x_i)logp(x_i)+\Sigma_{j=1}^m \Sigma_{i=1}^np(x_i,y_j)log\frac{p(x_i,y_j)}{p(y_j)}\\=....=\Sigma_{i=1}^n\Sigma_{j=1}^m p(x_i,y_j)log\frac{p(x_i,y_j)}{p(x_i)p(y_j)}\)
-
有\(H(Y)-H(Y|X)=H(X)-H(X|Y)\)。信息增益?
-
\(X,Y\)独立,有\(p(x_i,y_i)=p(x_i)p(y_i)\),\(H(X)-H(X|Y)=0\)。给出Y判断X或者给出X判断Y是没有增益的,因为两者独立。
-
利用凹函数的性质,可以知道信息增益大于等于0。
决策树建立
先从根节点开始,计算熵 。
令\(D_0=|\{Y=0\}|\),\(D_1=|\{Y=1\}|\)
\(H(Y)=-\frac{D_0}{n}log\frac{D_0}{n}\)
令\(D_{00}=|\{X_1=0,Y=0\}|\)....\(D_{11}\),\(|\{X_1=0\}|=D_{00}+D_{01}\)...
\(H(Y|X_1)=-\frac{D_{00}+D_{01}}{n}[\frac{D_{00}}{D_{00}+D_{01}}log\frac{D_{00}}{D_{00}+D_{01}}+\frac{D_{01}}{D_{00}+D_{01}}log\frac{D_{01}}{D_{00}+D_{01}}]-\frac{D_{10}+D_{11}}{n}[\frac{D_{10}}{D_{10}+D_{11}}log\frac{D_{10}}{D_{00}+D_{11}}+\frac{D_{11}}{D_{10}+D_{11}}log\frac{D_{11}}{D_{10}+D_{11}}]\)
因此需要选\(max_{i}(H(Y)-H(Y|X_i))\)这个特征进行第一次分类。那么什么时候分类停止?节点的熵等于0.