决策树

熵 

$H = -\sum_{i = 1}^{n} p(x_{i}) \log p(x_{i})$  

$n$ 是分类的数目,熵越大代表随机变量 $X$ 的不确定性越大。  

可知 $0 \leqslant H(P) \leqslant \log n$     

条件熵 $H(Y|X)$ 表示已知随机变量 $X$ 的条件下随机变量 $Y$ 的不确定性。  

定义 $H(Y|X)=\sum_{i=1}^{n} p_{i} H(Y|X=x_{i})$     

这里 $p_{i}=P(X=x_{i})$   

信息增益

表示得知特征 $X$ 后对类 $Y$ 的信息的不确定性减少的程度。

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

计算信息增益算法:

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

     $H(D)=-\sum_{k=1}^{K} \frac{|C_{k}|}{|D|} \log \frac{|C_{k}|}{|D|}$ 

(2)计算出 $H(D|A)$ 

        $H(D|A)=\sum_{i=1}^{n} \frac{D_{i}}{|D|} H(D_{i})=-\sum_{i=1}^{n} \frac{D_{i}}{|D|} \sum_{k=1}^{K} \frac{D_{ik}}{D_{i}}\log \frac{D_{ik}}{D_{i}}$

(3)计算出 $g(D,A)=H(D)-H(D|A)$  

信息增益比 

定义 $g_{R}(D,A)=\frac{g(D,A)}{H_{A}(D)}$ 

其中 $g(D,A)$ 在信息增益中有所定义,$H_{A}(D)=-\sum_{i=1}^{n}\frac{D_{i}}{|D|} \log \frac{|D_{i}|}{|D|}$,即 $D$ 关于 $A$ 的熵值。 

ID3 算法

输入:训练数据集 $D$,特征集 $A$ 阈值 $e$  

输出:决策树 $T$ 

核心思路:在分裂时遍历每种特征,选择信息增益最大的特征来进行分裂,并递归建树。 

C4.5 算法 

在 $ID3$ 的基础上将信息增益替换成信息增益比即可。 

 

决策树剪枝 

定义损失函数 $C_{\alpha} = \sum_{t = 1}^{|T|} N_{t} H_{t}(T)+\alpha |T|$     

其中 $H_{t}(T)=-\sum_{k = 1}^{K} \frac{N_{tk}}{N_{t}} \log \frac{N_{tk}}{N_{t}}$         

将第一项展开后可得 $C(T)=-\sum_{t=1}^{|T|} \sum_{k=1}^{K} N_{tk} \log \frac{N_{tk}}{N_{t}}$  

最小化这个东西实际上是用极大似然估计来进行模型的选择。

后面的 $\alpha |T|$ 皆在控制模型复杂度,$\alpha$ 被调到较大值时会使得 $|T|$ 变小,模型变简单。 

 

回归树的生成 

给定训练数据集 $D=\left \{ (x_{1}, y_{1}), (x_{2}, y_{2}), (x_{3}, y_{3})....(x_{N}, y_{N}) \right \}$,其中 $Y$ 为连续型输入变量。

回归树对应着输入空间的划分,$R_{1}, R_{2},....R_{M}$,$M$ 为划分数量,每个划分单元有统一的输出值 $c_{m}$  

那么回归模型就会被表示为:

  $f(x)=\sum_{m=1}^{M} c_{m}I(x\in R_{m})$

在对输入空间划分的确定时,用 $\sum_{x_{i} \in R_{m}} (y_{i}-f(x_{i}))^2$ 来表示训练误差。

那么显然在划分单元 $R_{m}$ 中对应的使平方损失最小的输出值就是 $\hat{c_{m}} = \mathrm{ave}(y_{i}|x_{i} \in R_{m})$,即 $y_{i}$ 的均值。

在节点 $t$ 划分时定义:

  $R_{1}(j,s)=\left \{  x|x^{(j)} \leqslant s\right \}$ 和 $R_{2}(j,s)=\left \{  x|x^{(j)} > s\right \}$

这里 $j,s$ 分别为切分特征 $j$ 与切分点 $s$,是自己指定的。 

那么在选择切分 $j, s$ 时皆在求解:

    $\min_{j,s} \left [ \sum_{x_{i} \in R_{1}(j,s) } (y_{i}-c_{1})^2+\sum_{x_{i} \in R_{2}(j,s)} (y_{i}-c_{2})^2 \right ]$

其中,$c_{1} = \mathrm{ave}(y_{i}|x_{i} \in R_{1})$, $c_{2} = \mathrm{ave}(y_{i}|x_{i} \in R_{2})$ 

这样递归下去直到满足停止条件就可以构成一个回归树:

    $f(x) = \sum_{m=1}^{M} \hat{c_{m}}I(x \in R_{m})$ 

 

Gini 系数

在分类问题中,假设有 $K$ 个类,样本点属于第 $k$ 个类的概率为 $p_{k}$,那么概率分布的基尼系数就被定义为:

      $\mathrm{Gini}(p)=\sum_{k=1}^{K}p_{k}(1-p_{k})=1-\sum_{k=1}^{K} p^2_{k}$   

对于一个给定的样本集合 $D$,其基尼系数为:

      $\mathrm{Gini}(D)=1-\sum_{k=1}^{K}(\frac{|C_{k}|}{|D|})^2$   

其中 $C_{k}$ 是 $D$ 中属于第 $k$ 类的样本子集,$K$ 是类的个数。      

如果样本 $D$ 根据特征 $A$ 的取值 $a$ 会被划分成两个部分 $D_{1}$ 与 $D_{2}$,那么在特征 $A$ 的条件下,基尼系数被定义为:

      $\mathrm{Gini}(D,A)=\frac{|D_{1}|}{|D|}\mathrm{Gini}(D_{1})+\frac{|D_{2}|}{|D|}\mathrm{Gini}(D_{2})$   

基于 Gini 系数的决策树生成算法:
每次在进行分类时选择 $\mathrm{Gini}(D,A)$ 最小的 $A$ 作为分类变量进行划分,并递归执行下去。 

CART 剪枝 

先前定义过 $C_{\alpha}(T)=C(T)+\alpha |T|$,$\alpha$ 是惩罚模型过大的参数。

$CART$ 剪枝皆在令 $\alpha$ 从小增大,$0=\alpha_{1}<\alpha_{2}<....<\alpha_{n}<+\infty$,产生一系列区间 $[\alpha_{i}, \alpha_{i+1})$。

在每个 $\alpha \in [\alpha_{i}, \alpha_{i+1})$ 中求出该区间对应的最优决策树,然后得到决策树序列 $\left \{  T_{0},T_{1}.....T_{n}\right \}$  

对于一个子树 $T_{t}$,显然 $\alpha$ 小时不剪枝会更优,而 $\alpha$ 特别大时剪枝会更好,那么就会有一个决策点。  

这个决策点就是剪枝的损失等于不剪支的损失,即 $C_{\alpha}(T_{t})=C_{\alpha}(t)$,可知 $\alpha = \frac{C(t)-C(T_{t})}{|T_{t}|-1}$  

那么对于每一个子树 $T_{t}$,都可以求出 $g(t)=\frac{C(t)-C(T_{t})}{|T_{t}|-1}$.    

初始情况下 $T_{0}=T$,即未剪枝的决策树。那么可以选择一个 $g(t)$ 最小的子树进行子树合并,得到新树 $T_{1}$

显然 $T_{1} \in T_{0}$,而 $T_{0}$ 就是 $\alpha \in [0, g(t))$ 这个区间段对应的决策树,$\alpha>g(t)$ 时就对应着 $T_{1}$.   

对于 $k>1$ 时同理,最后可以得到决策树集合 $\left \{  T_{0},T_{1}.....T_{n}\right \}$   

完整算法框架:

输入:CART 算法生成的决策树 $T_{0}$  

输出:最优决策树 $T_{1}$   

(1)设 $k=0, T=T_{0}$ 

(2)设 $\alpha = +\infty$  

(3)自下而上对节点 $t$ 就是 $g(t)$,得:

      $g(t)=\frac{C(t)-C(T_{t})}{|T_{t}|-1}$ 

      $\alpha = \mathrm{min}(\alpha, g(t))$

(4)对 $g(t)=\alpha$ 得节点 $t$ 进行剪枝,并以 $t$ 中多数类表决 $t$ 节点的种类,得到树 $T$.  

(5)设 $k=k+1$,$\alpha_{k}=\alpha$,$T_{k}=T$。  

(6)如果 $T_{k}$ 不是由根节点和两个叶节点构成的树,回到步骤(2);

(7)采用交叉验证法在序列 $\left \{  T_{0},T_{1}.....T_{n}\right \}$ 中选择最优决策树 $T_{\alpha}$。

posted @ 2022-09-04 22:41  guangheli  阅读(74)  评论(0)    收藏  举报