目录
1. Zero-R
2. One-R
3. 从1-R到决策树
4. ID-3决策树
5. 决策树的分支条件——不纯度
6. 决策树的特征选择——信息增益
6.1 信息增益的缺陷
7. 决策树的特征选择——信息增益比
8. 决策树对于样本的预测
8.1 对于重复样本的预测
8.2 对于新样本的预测
9. 决策树的深度 & 性能
10. 关于ID-3决策树的讨论
是一种常用的
:
是通过对样本集合进行统计,然后选用出现频率最高的样本类作为对所有测试集样本预测的结果。
例如一个数据集包含三类样本,标签分别是:
A | 1000 |
B | 500 |
C | 500 |
那么这个时候最多类是,占比是
,因此对于任何测试样本,这个
模型的预测结果都是
,而这个模型的正确率也就是
。
模型不涉及任何特征的使用:
只有对于预测样本类别有用。
:
只使用一组特征来构建模型并预测标签。
实际流程:
对于每个特征:
- 针对每个特征中所有不同的取值,计算这个取值的弱势标签数
。
- 将所有取值的弱势标签数求和,除以所有的样本数
,得到
以这个特征构建
时候的错误概率
比对每个特征的结果并选出拥有最高分类概率的特征作为标准,在测试集中进行样本预测。
例子:
对这个特征进行构建
模型:
中对于
和
的数量分别是
;所以对于
来说,把
标签看做是优势标签,而
标签被认为是弱势标签,因此
的弱势样本数是
个。
同理,中的
的弱势样本数是
,
个;
的弱势样本是
,
个。所以整个
特征对于标签的错误率是
。
综上:规则的表现优于
。我们选
作为
的特征。
再来看一个有更多特征的例子:
根据上面的结果,我们的模型会基于
或者
来构建。
我们把
称为决策树桩(decision stump),因为通过
可以选出决策树的根节点(根特征)。
如果首先根据上面决定一个树桩
作为决策树的根,构建决策树:
如何判断一个节点是否需要扩展子节点:
对于
这个叶子节点来说,已经不存在错误样本
;因此它不再需要通过扩展其他特征来降低错误样本数。而对于
(
)和
(
)则需要根据当前的特征集再选出额外的特征来使得错误率减小。
举个例子:
假设将的所有样本这个当做一个新的数据集,那么这个数据集包含了
个样本,从剩下的所有特征
中选出一个特征来构造
模型,使得当前情况下能够有最小的错误率。
基于的
个样本中采用了
特征构建了
,从而使得以
为根节点的子树的错误率降低到
同理,在的所有样本中,选用
特征来构建
,错误率也降低到
。
当树的所有的叶子结点是没有错误样本的,也就是说这棵树是一棵完美的决策树了。
构建一棵决策树的步骤是递归的,从根节点开始分支,每个叶子节点都会有一定量的样本。
算法如下:
Note: 实际上叶子节点的错误率为是很苛刻的条件,因此我们通常会使用一个阈值来决定是否要继续分支。而且我们通常不采用
的方式作为决策树分支的标准。
纯度:
对于采用
作为分支标准的决策树,只要叶子节点的错误率非零,我们认为它是 “不纯” 的,那么对于其他分支标准如何衡量一个叶子节点 “不纯” 的程度呢?
不纯度:
为了更好的决定一个叶子节点是否需要继续分支,我们引入不纯度来决定。当叶子节点的不纯度超过了某一个阈值我们认为这个叶子节点是不可忍受的,必须进行分支来降低错误率。
Entropy
熵是用来衡量“不可预测性”的一个指标,结果的不确定性越大,熵就越大。
给定一个概率分布,预测一个事件所需的信息(以比特为单位)就是该分布的熵或信息值(information value)
例子:假设对于某个节点,使用计算不纯度:
我们更喜欢熵值较低的叶子(更纯净)!
假设如果现在的分支标准是那么
就不需要再分支了。
当决策树根据衡量出结点不纯度高于设定的阈值,这时候决策树要进行分支,那么如何选择合适的特征进行分支呢?
在基于策略构成的决策树中,分支选用的新特征的标准就是:选用的特征让当前叶子结点分支后的错误率最小。
除了这种选择特征的方式,我们还可以用信息增益和信息增益比来选择特征。
信息增益(Information Gain,
)
特征
的信息增益是下面两部分的差值:
- 在选用特征
进行当前结点
分支之前,这个叶子结点的
。
- 选用
特征完成分支之后,
产生的所有分支结点
的
的加权平均值(mean information)
这两部分的差值叫做信息增益,它反映的是选用
对于原本叶子结点
不纯度的消除程度。我们肯定希望选择信息增益最大的特征当做当前
结点的新特征。
注意:
信息增益的计算是在每个结点进行分支的时候,对于当前结点的所有备选特征进行
的计算,而不是在一开始就计算好。也就是说,当我在考虑
结点的分支问题的时候,就只是对
可选的所有特征计算他们对于
的信息增益,与
之外的任何结点没有关系
平均信息(mean information)
对于结点
,选择特征
进行分支,分支后的平均信息量根据下面公式计算:
是分支产生的某个新结点
上的信息量
。
- 每个新结点也可以看成是特征
中的某一种取值。
是这个新结点中样本的数量
占分支之前的结点
的比例:
。
例子:
下图中,新结点分别是
。分支后每个新结点的
分别是下图中计算的
,
一目了然。
因此在当前结点选择特征进行分支的信息增益比是:
通过这种方式,可以计算出在当前结点所有可用特征的信息增益,然后选出最大的特征作为当前结点的分支特征。
然后我们再计算出,
和
的
:
综上,的
最大,因此在当前结点,我们选择
作为新的特征来构建分支。
如果拿作为特征来计算信息增益,我们可以得到什么结果呢?
信息增益竟然是,之所以这样是因为
的个数和样本个数一样多,因此以
特征进行分支,分出来的叶子节点数量也会和样本数一样多,那也就根本不存在劣势样本所以每个结点的纯度都是
。
这也体现出信息增益作为特征筛选标准的一个问题,那就是对于类似于的这种特征(特征内的取值非常多)是不起作用的。而且容易导致整个决策树模型过拟合。
为了解决这个问题,我们采用更加合理的信息增益比(gain ration)作为分支特征筛选的标准。
通过对分支信息增益(Gain Ratio)的规范化减小 “分支过多” 造成的偏差GR 的公式如下:
是进行分支的新特征;
是分支之前的原本节点。
不鼓励选择具有许多均匀分布值的特征
属性值的熵,不是相对于目标类而言的。也叫内在价值。
信息增益的优势:
假设目前已经形成了一棵不错的决策树:
对于一个曾经见过的特征组合,我们可以根据决策树的分支策略对测试的样本进行预测:
如果一个样本不能够符合分支的情况,应该怎么进行决策呢?例如。
这时候决策树会先匹配,进入右边的分支。
然后根据中发现
是
所以他会给出
的答案(因为
在
中是优势标签)
相比于深层的决策树,我们更希望能够得到较浅的决策树;因为使用的特征过多代表决策树的过拟合风险太大。
是一种归纳学习算法。
在假设空间(hypothesis space)中搜索符合训练示例的假设。
假设空间是可能决策树的集合。
在这个假设空间中执行从简单到复杂的爬山搜索。
从
开始,然后在寻找正确分类训练数据的决策树时逐步考虑更详细的假设。
不使用回溯。
我们倾向于构造更浅的树:
- 倾向于符合数据的最短假设。
- 符合数据的短假设不太可能是巧合,符合数据的长假设可能是巧合。
ID-3的优点
- 在基本监督学习中受到高度评价。
- 训练和分类速度快。
- 高度可解释性。
ID-3 的缺点
- 容易过拟合。
- 容易受不相关特征的影响。
- 偏爱
类型的特征。