• 决策树学习笔记


    决策树

    概念

    希望根据样本的若干个特征对其进行分类。

    决策树是一种判别模型。

    特征:\(X_1,X_2...X_m,Y\)

    样本:\(x_1,x_2..x_n\)

    可以进行二分类也可以进行多分类。一般来说使用决策树的时候特征取值都是离散的。最终想要学习到的是特征和标签之间的关系。

    \[\begin{matrix} &X_1&X_2&...&Y\\ x_1&1&0&...&1\\ x_2&0&1&...&0\\...\\ \end{matrix} \]

    现在从列的角度出发,可能存在某一个特征,对于分类的作用大于其他的特征。考虑使用树,从根节点进行二分。设\(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)}\)

    1. \(H(Y)-H(Y|X)=H(X)-H(X|Y)\)。信息增益?

    2. \(X,Y\)独立,有\(p(x_i,y_i)=p(x_i)p(y_i)\)\(H(X)-H(X|Y)=0\)。给出Y判断X或者给出X判断Y是没有增益的,因为两者独立。

    3. 利用凹函数的性质,可以知道信息增益大于等于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.

  • 相关阅读:
    【教程】利用OBS+腾讯会议进行线上考试
    【Python】Pygame入门
    【站长】视频解析接口大全 – 站长必备
    【Python】GUI编程(Tkinter)教程
    2017年Unity开发环境与插件配置安装(总体介绍)
    如何开发AR增强现实应用与产品
    红透半边天的VR(虚拟现实)产业
    VR就是下一个浪潮_2016 (GMGC) 全球移动游戏大会观后感
    《Unity3D/2D游戏开发从0到1》正式出版发行
    AR增强现实开发介绍(续)
  • 原文地址:https://www.cnblogs.com/lipoicyclic/p/16123440.html
Copyright © 2020-2023  润新知