决策树的相关知识

首先通过两个图来引入什么是决策树。
在这里插入图片描述
决策树是仿树结构来进行决策的,例如上图来说,我们要对‘是否学习’这个问题进行决策时,通常伴随一系列的子决策。先看是否有‘对象’,有的话是否需要‘陪伴对象’,通过一次次子决策后得到最终决策:是否学习。
一般情况下,一棵决策树包含一个根节点,若干内部节点和若干叶节点,如下图所示,那么与是否学习的决策过程对应起来,‘女票’为根节点,'陪女友’和‘任务’‘吃鸡’为内部节点,最下面一层为叶子节点。
在这里插入图片描述

一、 决策树到底是什么?

决策树是一种基本的分类和回归方法。决策树呈树形结构,在分类问题中,表示基于特征对实例进行分类的过程。采用的是自顶而下的递归方法,从根节点开始一步步走到叶子节点,所有的数据最终都会落在叶子节点。它可以认为是if-then规则的集合,也可以认为是定义在特征空间和类空间上的条件概率分布。学习时,利用训练数据,根据损失函数最小化的原则建立决策树模型。预测时,对新的数据,利用决策树模型进行分类。
决策树学习通常包括三个步骤:特征选择、决策树的生成和决策树的剪枝。
决策树算法的发展从ID3到C4.5再到CART。

二、决策树的相关概念

1.信息熵

熵是无序度的度量,在信息论和统计中,熵表示随机变量不确定性的度量。 信息熵是度量样本集的纯合度的一种常用的指标。假设X是一个取有限值的离散型随机变量,它的概率分布如下
P(X= x i x_i )= p i p_i ( i=1,2,…,n)
则随机变量X的熵定义为:在这里插入图片描述
H(X) 就被称为随机变量 x 的熵,它是表示随机变量不确定的度量,是对所有可能发生的事件产生的信息量的期望。
p i p_i =0,定义0log0=0,从上式中可以看到,熵只依赖于X的分布,而与X的取值没有关系。熵值越大,随机变量的不确定性越高。

2.信息增益:在这里插入图片描述

我们一般使用下面的公式计算信息增益:
在这里插入图片描述

信息增益在决策树算法中是用来选择特征的指标,信息增益越大,则这个特征的选择性越好。信息增益大的特征具有更强的分类能力。

从信息增益的定义可知其与条件熵的关系:信息增益= 信息熵 - 条件熵
什么是条件熵呢?

3. 条件熵:在这里插入图片描述

条件熵H(x|y)表示在已知随机变量y的条件下随机变量x的不确定性。
注意,这个条件熵,不是指在给定某个数(某个变量为某个值)的情况下,另一个变量的熵是多少,变量的不确定性是多少?而是期望!
因为条件熵中y也是一个变量,意思是在一个变量y的条件下(变量y的每个值都会取),另一个变量x熵对y的期望。
这是最容易错的!

三、ID3决策树

当决策树中选择最优划分属性按照信息增益最大来进行时,决策树属于 ID3 决策树

ID3 树中最优划分属性计算举例

在之前,先给出周志华老师《机器学习》中的西瓜数据如下:
在这里插入图片描述
在这个例子中分类个数为 2 (是好瓜、不是好瓜)。在决策树学习开始时,根结点包含 D中所有样例,正例占 p 1 p_1 = 8 17 \frac{8}{17} p 2 p_2 = 9 17 \frac{9}{17}
我们根据公式算一下信息熵:
在这里插入图片描述
然后我们要计算出与当前属性集合 {色泽、根蒂、敲声、纹理、脐部、触感}中每个属性的信息增益,也就是对应的互信息。以属性“色泽”为例,它有 3个可能取值:{青绿、乌黑、浅白}。以该属性对数据集进行划分,可以得到 3个子集,分别为:
D 1 D^1 (色泽=青绿), D 2 D^2 (色泽=乌黑), D 3 D^3 (色泽=浅白)

D 1 D^1 包含6个样例,正例 3 6 \frac{3}{6} ,负例 3 6 \frac{3}{6} ,那么
Ent( D 1 D^1 )=-( 3 6 \frac{3}{6} log 3 6 \frac{3}{6} + 3 6 \frac{3}{6} log 3 6 \frac{3}{6} )=1

D 2 D^2 包含6个样例,正例 4 6 \frac{4}{6} ,负例 2 6 \frac{2}{6} ,那么
Ent( D 1 D^1 )=-( 4 6 \frac{4}{6} log 4 6 \frac{4}{6} + 2 6 \frac{2}{6} log 2 6 \frac{2}{6} )=0.918

D 3 D^3 包含5个样例,正例 1 5 \frac{1}{5} ,负例 4 5 \frac{4}{5} ,那么
Ent( D 1 D^1 )=-( 1 5 \frac{1}{5} log 1 5 \frac{1}{5} + 4 5 \frac{4}{5} log 4 5 \frac{4}{5} )=0.772

那么色泽的信息增益为:
Gain(D,色泽)=0.998-( 6 17 \frac{6}{17} *1+ 6 17 \frac{6}{17} *0.918+ 5 17 \frac{5}{17} *0.772)=0.109

重复上述的计算步骤,我们可以计算出其他属性的信息增益:
Gain(D,根蒂)=0.143
Gain(D,敲声)=0.141
Gain(D,纹理)=0.381
Gain(D,脐部)=0.289
Gain(D,触感)=0.006

显然,“纹理”信息增益最大,于是它被选为划分属性
在这里插入图片描述
对每一个数据子集按照上边的步骤继续划分下去就能得到最终的决策树(需要注意的是每次样例子集中的属性不包含父结点中划分所依赖的属性)
在这里插入图片描述
ID3优点是理论清晰、方法简单、学习能力较强
但也存在一些缺点:
(1)只能处理分类属性的数据,不能处理连续的数据;
(2)划分过程会由于子集规模过小而造成统计特征不充分而停止;
(3)ID3算法在选择根节点和各内部节点中的分支属性时,采用信息增益作为评价标准。而信息增益的缺点是倾向于选择取值较多的属性,在有些情况下这类属性可能不会提供太多有价值的信息。
(4)没有考虑过拟合的问题

四、决策树的损失函数(正则化的极大似然函数)

决策树生长的核心在于如何选择最优特征作为当前结点分割的特征

当决策树如此生长完成后,对训练集程度会很好,但是对测试集一般都会出现高方差、过拟合的现象,如何预防这种现象,就是预剪枝、后剪枝方法。

而剪枝过程换个方法来讲,其实就是在优化降低Loss function的的过程。

Loss function
设决策树T的叶节点个数为, 是树的叶节点,该叶节点有个样本点,其中 k 类的样本点有个,,

为该叶节点的信息熵,为参数,则决策树学习的损失函数可以定义为:
在这里插入图片描述
-----------李航,《统计学习方法》
其中|T|代表叶节点个数, N t N_t 表示具体某个叶节点的样例数, H t H_t (T)表示叶节点经验熵表示叶节点经验熵。
公式翻译过来,就是每个叶子节点的 样本点数量 * 该结点的信息熵,再加上一个正则项。
优化之……
我们其他相关内容下次再说!

原文来源1:https://blog.csdn.net/qq_36330643/article/details/77415451 原文来源2:https://blog.csdn.net/qq_35946969/article/details/86934746 原文来源3:https://www.jianshu.com/p/14a9e8d1f2a3 原文来源4:https://www.jianshu.com/p/d9b2a6b0ab9e