详解决策树-特征选择【十分钟机器学习系列笔记】

118 阅读3分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第17天,点击查看活动详情

视频作者:简博士 - 知乎 (zhihu.com)简博士的个人空间_哔哩哔哩_bilibili

链接:【合集】十分钟 机器学习 系列视频 《统计学习方法》_哔哩哔哩_bilibili

分类决策树模型时一种描述对实例进行分类的树形结构

 

决策树由结点和有向边组成。结点有两种类型:内部结点表示一个特征或属性,叶结点表示一个类

 

决策树学习算法包含特征选择、决策树的生成与决策树的剪枝过程

 

给点数据集

D={(x1,y1),(x2,y2),,(xN,yN)} D=\left\{(x_{1},y_{1}),(x_{2},y_{2}),\cdots ,(x_{N},y_{N})\right\}

其中

  • xi=(xi(1),xi(2),,xi(n))Tx_{i}=(x_{i}^{(1)},x_{i}^{(2)},\cdots ,x_{i}^{(n)})^{T}为输入实例(特征向量)

  • nn为特征个数

  • yi{1,2,,K}y_{i}\in \left\{1,2,\cdots ,K\right\}为类标记

  • NN为样本容量

 

特征选择

熵是表示随机变量不确定性的度量。设XX是一个去有限个值的离散随机变量,其概率分布为

P(X=xi)=pi,i=1,2,,n P(X=x_{i})=p_{i},i=1,2,\cdots,n

则随机变量XX的熵定义为

H(X)=i=1npilogpi=H(p) H(X)=- \sum\limits_{i=1}^{n}p_{i}\log p_{i}=H(p)

由定义可知,熵只依赖于XX的分布,而与XX的取值无关,所以也可将XX的熵记作H(p)H(p)。这里我们定义0log0=00 \log0=0

我们可以通过数学验证

  • 当所有样本等几率出现的情况下,熵达到最大值(所有可能的事件等概率时不确定性最高)

  • 对于样本等几率分布而言,样本数越大,熵值越大(可能的事件越多,不确定性越高)

 

条件熵H(YX)H(Y|X)表示在已知随机变量XX的条件下随机变量YY的不确定性。定义为XX给定条件下YY的条干分布的熵对XX的数学期望

H(YX)=i=1nP(X=xi)H(YX=xi)=i=1npiH(YX=xi) H(Y|X)=\sum\limits_{i=1}^{n}P(X=x_{i})H(Y|X=x_{i})=\sum\limits_{i=1}^{n}p_{i}H(Y|X=x_{i})

 

当熵和条件熵的概率由数据估计得到时,所对应的熵与条件熵称为经验熵和经验条件熵。此时,如果有00概率,令0log0=00 \log0=0

 

信息增益表示得知特征XX的信息而使得类YY的信息的不确定性减少的程度。

特征XX对训练数据集YY的信息增益g(Y,X)g(Y,X),定义为集合YY的经验熵H(Y)H(Y)与特征XX给定条件下YY的经验条件熵H(YX)H(Y|X)之差,即

g(Y,X)=H(Y)H(YX) g(Y,X)=H(Y)-H(Y|X)

信息增益大的特征具有更强的分类能力,因此我们要通过计算选择信息增益最大的特征

 

信息增益的算法

输入:训练数据集DD和特征AA

输出:特征AA训练数据集DD的信息增益g(D,A)g(D,A)

 

计算数据集DD的经验熵H(D)H(D)

H(D)=k=1KCkDlogCkD H(D)=- \sum\limits_{k=1}^{K} \frac{|C_{k}|}{|D|}\log \frac{|C_{k}|}{|D|}

 

这里的DD就是样本空间,对应XXCC就是类别,对应YYKK就是决策结果的种类数,对应YY元素的个数

 

计算特征AA对数据集DD的经验条件熵H(DA)H(D|A)

H(DA)=i=1nDiDH(Di) H(D|A)=\sum\limits_{i=1}^{n} \frac{|D_{i}|}{|D|}H(D_{i})

 

这里的ii是特征AA的种类的数量,例如年龄就有三类,工作有两类……

注意这里的经验熵不是H(D)H(D),而是H(Di)H(D_{i}),表示特征AA的某个类别的经验熵

 

H(DA)=i=1nDiDH(Di)=i=1nDiDk=1KDikDilogDikDi H(D|A)=\sum\limits_{i=1}^{n} \frac{|D_{i}|}{|D|}H(D_{i})=- \sum\limits_{i=1}^{n} \frac{|D_{i}|}{|D|}\sum\limits_{k=1}^{K} \frac{|D_{ik}|}{|D_{i}|}\log \frac{|D_{ik}|}{|D_{i}|}

 

这里KK仍然是决策结果的种类数;DikD_{ik}表示在AA的某个类别对应决策结果的数量

 

计算信息增益

g(D,A)=H(D)H(DA) g(D,A)=H(D)-H(D|A)

 

例:根据信息增益准则选择最优特征

![[附件/Pasted image 20221004110237.png|500]]

 

 

计算信息熵H(D)H(D)

H(D)=915log915615log615=0.971 H(D)=- \frac{9}{15}\log \frac{9}{15}- \frac{6}{15}\log \frac{6}{15}=0.971

A1A_{1}年龄计算条件信息熵

H(DA1)=515H(D11)+515H(D12)+515H(D13)=515(25log2535log35)+515(35log3525log25)+515(415log4515log15)=0.888 \begin{aligned} H(D|A_{1})&=\frac{5}{15}H(D_{11})+ \frac{5}{15}H(D_{12})+ \frac{5}{15}H(D_{13})\\ &=\frac{5}{15}(- \frac{2}{5}\log \frac{2}{5}- \frac{3}{5}\log \frac{3}{5})+ \frac{5}{15}(- \frac{3}{5}\log \frac{3}{5} - \frac{2}{5} \log \frac{2}{5})+ \frac{5}{15}(- \frac{4}{15} \log \frac{4}{5}- \frac{1}{5} \log \frac{1}{5})\\ &=0.888 \end{aligned}

这里D11,D12,D13D_{11},D_{12},D_{13}分别对应A1A_{1}年龄中青年、中年、老年的样本

对应信息增益

g(D,A1)=0.9710.888=0.083 g(D,A_{1})=0.971-0.888=0.083

同理我们计算A2A_{2}有工作、A3A_{3}有自己的房子、A4A_{4}信贷情况

g(D,A2)=0.9710.647=0.324g(D,A3)=0.9710.551=0.420g(D,A4)=0.9710.608=0.363 \begin{aligned} g(D,A_{2})&=0.971-0.647=0.324\\ g(D,A_{3})&=0.971-0.551=0.420\\ g(D,A_{4})&=0.971-0.608=0.363 \end{aligned}

因此选择A3A_{3}有自己的房子的作为最优特征

 

信息增益比

之前有说过对于样本等几率分布而言,样本数越大,熵值越大(可能的事件越多,不确定性越高),因此我们需要对其进行校正,因此引入信息增益比

特征XX对训练数据集YY的信息增益比gR(Y,X)g_{R}(Y,X)定义为其信息增益g(Y,X)g(Y,X)与训练数据集YY关于特征XX的值的熵HA(Y)H_{A}(Y)之比,即

gR(Y,X)=g(Y,X)HA(Y)=g(Y,X)i=1nDiDlogDiD g_{R}(Y,X)=\frac{g(Y,X)}{H_{A}(Y)}=\frac{g(Y,X)}{-\sum\limits_{i=1}^{n} \frac{|D_{i}|}{|D|}\log \frac{|D_{i}|}{|D|}}

这里DiD_{i}是指AA特征的各类别的数据数量

 

例:计算gR(D,A1)g_{R}(D,A_{1})

g(D,A1)=0.083HA1(Y)=515log515515log515515log515=1.585gR(D,A1)=0.0831.585=0.052 \begin{aligned} g(D,A_{1})&=0.083\\ H_{A_{1}}(Y)&=- \frac{5}{15}\log \frac{5}{15}- \frac{5}{15}\log \frac{5}{15}- \frac{5}{15}\log \frac{5}{15}=1.585\\ g_{R}(D,A_{1})&=\frac{0.083}{1.585}=0.052 \end{aligned}

其余也是同理,可得

 

     特征    信息增益HA(D)H_{A}(D)信息增益比
     年龄      0.083      1.585      0.052   
    有工作     0.324     0.918      0.353   
有自己的房子  0.420     0.971      0.432   
   信贷情况    0.363     1.566      0.232