分类决策树模型时一种描述对实例进行分类的树形结构
决策树由结点和有向边组成。结点有两种类型:内部结点表示一个特征或属性,叶结点表示一个类
决策树学习算法包含特征选择、决策树的生成与决策树的剪枝过程
给点数据集
$$
D=\left{(x_{1},y_{1}),(x_{2},y_{2}),\cdots ,(x_{N},y_{N})\right}
$$
其中
-
$x_{i}=(x_{i}^{(1)},x_{i}^{(2)},\cdots ,x_{i}^{(n)})^{T}$为输入实例(特征向量)
-
$n$为特征个数
-
$y_{i}\in \left{1,2,\cdots ,K\right}$为类标记
-
$N$为样本容量
特征选择
熵是表示随机变量不确定性的度量。设$X$是一个去有限个值的离散随机变量,其概率分布为
$$
P(X=x_{i})=p_{i},i=1,2,\cdots,n
$$
则随机变量$X$的熵定义为
$$
H(X)=- \sum\limits_{i=1}^{n}p_{i}\log p_{i}=H(p)
$$
由定义可知,熵只依赖于$X$的分布,而与$X$的取值无关,所以也可将$X$的熵记作$H(p)$。这里我们定义$0 \log0=0$
我们可以通过数学验证
-
当所有样本等几率出现的情况下,熵达到最大值(所有可能的事件等概率时不确定性最高)
-
对于样本等几率分布而言,样本数越大,熵值越大(可能的事件越多,不确定性越高)
条件熵$H(Y|X)$表示在已知随机变量$X$的条件下随机变量$Y$的不确定性。定义为$X$给定条件下$Y$的条干分布的熵对$X$的数学期望
$$
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})
$$
当熵和条件熵的概率由数据估计得到时,所对应的熵与条件熵称为经验熵和经验条件熵。此时,如果有$0$概率,令$0 \log0=0$
信息增益表示得知特征$X$的信息而使得类$Y$的信息的不确定性减少的程度。
特征$X$对训练数据集$Y$的信息增益$g(Y,X)$,定义为集合$Y$的经验熵$H(Y)$与特征$X$给定条件下$Y$的经验条件熵$H(Y|X)$之差,即
$$
g(Y,X)=H(Y)-H(Y|X)
$$
信息增益大的特征具有更强的分类能力,因此我们要通过计算选择信息增益最大的特征
信息增益的算法
输入:训练数据集$D$和特征$A$
输出:特征$A$训练数据集$D$的信息增益$g(D,A)$
计算数据集$D$的经验熵$H(D)$
$$
H(D)=- \sum\limits_{k=1}^{K} \frac{|C_{k}|}{|D|}\log \frac{|C_{k}|}{|D|}
$$
这里的$D$就是样本空间,对应$X$;$C$就是类别,对应$Y$;$K$就是决策结果的种类数,对应$Y$元素的个数
计算特征$A$对数据集$D$的经验条件熵$H(D|A)$
$$
H(D|A)=\sum\limits_{i=1}^{n} \frac{|D_{i}|}{|D|}H(D_{i})
$$
这里的$i$是特征$A$的种类的数量,例如年龄就有三类,工作有两类……
注意这里的经验熵不是$H(D)$,而是$H(D_{i})$,表示特征$A$的某个类别的经验熵
$$
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}|}
$$
这里$K$仍然是决策结果的种类数;$D_{ik}$表示在$A$的某个类别对应决策结果的数量
计算信息增益
$$
g(D,A)=H(D)-H(D|A)
$$
例:根据信息增益准则选择最优特征
计算信息熵$H(D)$
$$
H(D)=- \frac{9}{15}\log \frac{9}{15}- \frac{6}{15}\log \frac{6}{15}=0.971
$$
对$A_{1}$年龄计算条件信息熵
$$
\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}
$$
这里$D_{11},D_{12},D_{13}$分别对应$A_{1}$年龄中青年、中年、老年的样本
对应信息增益
$$
g(D,A_{1})=0.971-0.888=0.083
$$
同理我们计算$A_{2}$有工作、$A_{3}$有自己的房子、$A_{4}$信贷情况
$$
\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}
$$
因此选择$A_{3}$有自己的房子的作为最优特征
信息增益比
之前有说过对于样本等几率分布而言,样本数越大,熵值越大(可能的事件越多,不确定性越高),因此我们需要对其进行校正,因此引入信息增益比
特征$X$对训练数据集$Y$的信息增益比$g_{R}(Y,X)$定义为其信息增益$g(Y,X)$与训练数据集$Y$关于特征$X$的值的熵$H_{A}(Y)$之比,即
$$
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|}}
$$
这里$D_{i}$是指$A$特征的各类别的数据数量
例:计算$g_{R}(D,A_{1})$
$$
\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}
$$
其余也是同理,可得
特征 | 信息增益 | $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 |