0
点赞
收藏
分享

微信扫一扫

ML《决策树(一)ID3》


今天做个回顾和记录,简单做个学习,也是梳理下知识点,决策树的学习。

本文的学习,自己不想画图,因为觉得没有必要自己画图,所以文中一部分图片是截取其他人的分享,但是内容都会是自己写的。

当然了,这里是浅析学习学习。

一:ID3

拿西瓜书里面的来举例子来说,我们去挑西瓜呗,西瓜的有纹理,色泽,触感等特征,怎么判断这是不是好瓜呢?有经验的人会告诉我们,纹理咋样的是好是坏,然后色泽咋样的时好时坏,等等一系列的类似于if –else 的判断标准,画出来呢就是下图表示。

ML《决策树(一)ID3》_机器学习

这个只是举例子啊,很明显从数据结构的角度来看就是树,从这里我们能看出来,从某一个特征开始划分,一直到达了某个叶子节点我们才能确认该瓜是不是一个好瓜。如果我们能得到这个模型,那么对于一个新的瓜就能做出对应的分类预测了。

决策树额特点就是非叶子节点呢都是属性值/特征值的判断过程,至于叶子节点才是最明确的分类结果。决策树学习的关键其实就是选择最优划分属性,希望划分后,分支结点的“纯度”越来越高。这里的“纯度”也可以说是分类的明确度,在信息论上来讲就是熵。纯度越高,无序度越低,熵越低。

但是真实要怎么做呢?怎么得到这样的“一棵树”?拿数据说话,假如我们有以下数据。

ML《决策树(一)ID3》_决策树_02

那么我们以此来建立一个决策树出来。我们来学习ID3的算法。

我们既然希望划分之后结点的“纯度”越来越高,那么如何度量纯度呢?而之前我们提到了信息论的角度,“信息熵”是度量样本集合不确定度(纯度)的最常用的指标,信息熵是代表随机变量的复杂度(不确定度)通俗理解信息熵,条件熵代表在某一个条件下,随机变量的复杂度(不确定度),这个我们之前有篇博文学习过。

在ID3算法中,我们采取信息增益这个量来作为纯度的度量。我们选取使得信息增益最大的特征进行分裂! 而我们的信息增益是:信息熵 减去 条件熵。接下来我们将用数学的表示方法来描述这一过程。

ML《决策树(一)ID3》_ID3_03


ML《决策树(一)ID3》_机器学习_04


ML《决策树(一)ID3》_信息增益_05


ML《决策树(一)ID3》_信息熵_06

好了公式写完了,那么就来说一说吧。
在决策树算法中,我们的关键就是每次选择一个特征作为划分的一个节点node,我们可以看到,决策树中父节点的划分只是一句某一个单一的特征,现在特征有多个,那么到底按照什么标准来选择哪一个特征。

这个问题就可以用信息增益来度量。如果选择一个特征后,信息增益最大(信息不确定性减少的程度最大),那么我们就选取这个特征,呐,ID3的算法就是这样的,就是在所有的特征中,选择信息增益最大的特征,然后我们按照分出来的多个小的子样本集合,再进行同样的操作,直到叶子节点是纯度最高的情况才停止。

具体的数学计算操作呢,这里就省去了,因为我懒,我觉得前面已经能说的很详细了,熟悉信息论的同学应该是一看就懂了的,还不懂的话呢,建议先学些一下我之前的关于各种信息熵的博文,以及对应的知识补充。

ID3算法呢,有一些缺点。
1:它只能处理离散值。
2:容易过拟合,因为我们拿到了样本,总是希望最后得到的样本是非常纯的,所以我那个我那个造成了过拟合,训练样本拟合很好,泛化能力降低。
3:在每一次的节点选择中啊,它总是倾向于某个属性值种类多的特征。

为什么说ID3倾向于那个鱼选择属性值种类多的特征呢,举一个最直接的例子,假如某个样本集合的值有ID这个列,当然ID是独一无二的,唯一表示某个具体的样本,那么如果我们按照ID这一列来划分,每一个划分的子样本集合都式纯度很高的,唯一确定的,信息熵都是0,那么此时计算信息增益无非就是最高的,所以就会直截了当选择了ID,当然这里只是举了个例子,实际中谁也不会去把ID作为属性参与训练,也就是从侧面反映出了,ID3会倾向于选择某个属性值种类多的特征。

因为有了这些缺点吧,下一篇博文我们会学习C4.5算法。


举报

相关推荐

0 条评论