一文搞懂决策树! #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)=\\sumi=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博主之星评选#的主要内容,如果未能解决你的问题,请参考以下文章
代码实现LSTM 长短期记忆网络 | #51CTO博主之星评选#
代码实现 加性注意力 | additive attention #51CTO博主之星评选#
代码实现nadaraya-waston核回归 #51CTO博主之星评选#