一文搞懂决策树! #51CTO博主之星评选#

Posted LolitaAnn

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了一文搞懂决策树! #51CTO博主之星评选#相关的知识,希望对你有一定的参考价值。

分类决策树模型是一种描述对实例进行分类的树形结构。 决策树由结点和有向边组成。^[《统计学习方法》李航]

结点有两种类型:

  • 内部结点(internal node):表示一个特征或属性
  • 叶结点(leaf node):叶结点表示一个类

顾名思义,决策树说白了就是使用树结构进行决策。让我们借助:watermelon:书^[《机器学习》周志华]里的一张图来看一下子。

怎么判断一个西瓜是不是好瓜呢?

先看他的色泽是不是已经青绿色了,如果是,继续往下看;再看他gen蒂是否蜷缩,如果是就继续往下看;再敲一敲(签订契约,不是)听声音,如果是浊响,那他就是一个好瓜:watermelon:。

画决策树谁都会画,比如给你一串数据:
Refund Marital Status Income Cheat
Yes Single 125K No
No Married 100K No
No Single 70K No
Yes Married 120K No
No Divorced 95K Yes
No Married 60K No
Yes Divorced 220K No
No Single 85K Yes
No Married 75K No
No Single 90K Yes

你搞个决策树出来:


你可以看到上边两个决策树都能对给出的数据进行正确分类,那哪棵树更好呢?

学过算法的我们应该知道在查找过程中,不同结构的二叉树会对查找效率造成影响,同理,决策树结构不同也会影响判断的质量。

决策树学习本质上是从训练数据集中归纳出一组分类规则。与训练数据集不相矛盾的决策树(即能对训练数据进行正确分类的决策树)可能有多个,也可能一个都没有。我们需要的是一个与训练数据矛盾较小的决策树,同时具有很好的泛化能力。从另一个角度看,决策树学习是由训练数据集估计条件概率模型。基于特征空间划分的类的条件概率模型有无穷多个。我们选择的条件概率模型应该不仅对训练数据有很好的拟合,而且对未知数据有很好的预测。

决策树学习通常包括3个步骤:特征选择、决策树的生成和决策树的修剪。

由于决策树表示一个条件概率分布,所以深浅不同的决策树对应着不同复杂度的概率模型。决策树的生成对应于模型的局部选择,决策树的剪枝对应于模型的全局选择。
决策树的生成只考虑局部最优,相对地,决策树的剪枝则考虑全局最优。

接下来我们从三个步骤分别进行详细介绍如何搞一颗好用的决策树。

1 特征选择

特征选择在于选取对训练数据具有分类能力的特征。这样可以提高决策树学习的效率。

同一组数据建立决策树,究竟选择哪个特征更好些?这就要求确定选择特征的准则。
直观上,如果一个特征具有更好的分类能力,或者说,按照这一特征将训练数据集分割成子集,使得各个子集在当前条件下有最好的分类,那么就更应该选择这个特征。

如果利用一个特征进行分类的结果与随机分类的结果没有很大差别,则称这个特征是没有分类能力的。这样的特征一般来说丢弃也对整体结果没有太大的影响。

特征选择的准则是信息增益或信息增益比。

2 决策树生成

生成决策树的主要是两个算法,ID3和C4.5,前者是用信息增益生成决策树,后者是用信息增益比生成决策树。

2.1 预备知识

在知道怎么算信息增益之前我们先看一下需要的一些基础知识。

学过高中化学的应该都知道熵这个概念,熵的本质是一个系统“内在的混乱程度”。它在控制论、概率论、数论、天体物理、生命科学等领域都有重要应用,在不同的学科中也有引申出的更为具体的定义。

在信息论与概率统计中,是表示随机变量不确定性的度量。其实说白了就是越乱熵越高,不确定性越大熵越搞。

设 $X$ 是 一个取有限个值的离散随机变量, 其概率分布为
$$
P\\left(X=xi\\right)=pi= \\fracnintotal, \\quad i=1,2, \\cdots, n
$$
则随机变量 $X$ 的熵定义为
$$
H(X)=-\\sumi=1^n pi \\log p_i
$$

从这个定义中我们看出,$X$的熵和$X$的取值没什么关系,只和X的分布有关。

设有随机变量 $(X, Y)$, 其联合概率分布为
$$
P\\left(X=xi, Y=yj\\right)=pi j, \\quad i=1,2, \\cdots, n ; \\quad j=1,2, \\cdots, m
$$
条件熵 $H(Y \\mid X)$ 表示在已知随机变量 $X$ 的条件下随机变量 $Y$ 的不确定性。随机变量 $X$ 给定的条件下随机变量 $Y$ 的条件熵 $H(Y \\mid X)$, 定义为 $X$ 给 定条件下 $Y$ 的条件概率分布的熵对 $X$ 的数学期望
$$
H(Y \\mid X)=\\sum
i=1^n pi H\\left(Y \\mid X=xi\\right)
$$
这里, $pi=P\\left(X=xi\\right), i=1,2, \\cdots, n$ 。

熵 $H(Y)$ 与条件熵 $H(Y \\mid X)$ 之差称为互信息决策树学习中的信息增益等价于训练数据集中类与特征的互信息。

==信息增益表示== 得知特征 $X$ 的信息而使得类 $Y$ 的信息的不确定性减少的程度。

对于一个数据集$D = (x_i,y_i),i = 1,2,...,k$

balabala……

以上是关于一文搞懂决策树! #51CTO博主之星评选#的主要内容,如果未能解决你的问题,请参考以下文章

简洁实现RNN循环神经网络 #51CTO博主之星评选#

代码实现LSTM 长短期记忆网络 | #51CTO博主之星评选#

代码实现 加性注意力 | additive attention #51CTO博主之星评选#

代码实现nadaraya-waston核回归 #51CTO博主之星评选#

多图预警! Multi-Head Attention | 多头注意力 #51CTO博主之星评选#

《51CTO博客2.0——活跃之星评选大赛》获奖图书收到啦