决策树之ID3和C4.5

浏览: 1799

、决策树

       一种树状分类结构模型,是一种通过对变量值拆分建立起来的分类规则,又利用树形图分割形成的概念路径的数据分析技术。

、决策树的两个关键步骤

            1.png

、决策树的构建步骤

          2.png

注:

第一步中:先找出各个可以作为分类变量的自变量的所有可能的划分条件,再对每一个自变量比较各个划分下所得到的两个分支的差异大小,差异最大的划分条件作为该自变量的最优划分。

第二步中:①剪枝很有可能剪掉的就是噪声和离群点,但是在金融风控领域中这些离群点才更有可能使我们关注的对象。②数据是在一直持续划分直至在一个分区中特征无区别,因此决策树很容易出现过度拟合的现象。③对于大规模的数据量,可以使用预剪枝的方法,来对决策树进行剪枝。

什么叫过度拟合?来复习一下。

在学习期间,它可能包含了训练数据中的某些特定的异常,这些异常不会在一般数据集中出现。

⑶第四步中:可以利用混淆矩阵、ROC曲线、AUC等等模型评估指标来对我们的模型进行评估。

四、算法的理论知识介绍

     下面我们对ID3算法、C4.5算法以及CART算法进行理论上的分享。我们用用的是韩家炜老师书中的一个小案例。

           3.png

为了在叙述算法的时候方便,我们用A来表示age变量,用D来表示最后的类别class。

1ID3算法

在算法中,最主要的就是信息增益,选择具有最高信息增益的属性作为节点N的分裂属性,该属性使得结果分区对元组分类所需要的信息量最小。属性A的信息增益表示如下:

大家现在是不是对公式有点晕,我们以上面的例子来看一下属性A的信息增益:

                                                            4.pngImage

⑴首先给出信息熵的定义

某一信源发出某一消息所含有的信息量,用平均自信息量表示,一般选用以2为底表示

                                                                               22.png

用下图对概率和信息的关系进行表示:

                                                                 5.png

                                                     不确定性越大,比如概率都是0.5(类似于抛硬币),所含有的信息量越大。

⑵下面给出对D中元组分类所需要的期望信息:

Info(D)=-[(5/14)*log(5/14)+ (9/14)*log(9/14)

⑶下面给出Infoa(D)(上面公式的第二项的解释),它是基于属性A对D的元组进行分类所需要的期望信息,需要的信息越小,分区的纯度越高

太书面话了,白话来一下,按照上面说的信息量,假如A自带的信息越少,就表明用A这个变量来对元组进行区分越容易,那么说这也印证了上面的一句话:选择具有最高信息增益的属性作为节点N的分裂属性,晓得了吧!

下面我们来计算Infoa(D):首先我们观察上面的表格,可以用下面的表格表示相关信息

                                                                                   6.png

首先我们先看公式中的每一个Dj,young有5个元组,middle_aged有4个元组,senior有5个元组,下面我们再来看young下面有3个no,2个yes;middle_aged下面全部是yes,senior下面有3个yes,2个no。

所以Infoa(D)的计算为:

Infoa(D)=(5/14)*[-2/5log(2/5)- 3/5log(3/5)]+ (4/14)*[-0/4log(0/4)- 4/4log(4/4)]+(5/14)*[-2/5log(2/5)- 3/5log(3/5)]

注:我们是不是发现按照age分类,我们已经把middle_aged全部分为了yes。

⑷上面的变量,比如age,是通过泛化,将连续的数值变量变成了离散的分类变量,在处理连续值的时候,我们可以让值递增排序,每对相邻值得中点作为分类点,这样如果有x个值,就有可能有x-1个可能的划分,再从中寻找最优的划分。

ID3算法的总结

                                               7.png


2C4.5算法

       选择具有最高信息增益率的属性作为节点N的分裂属性,这样避免了偏袒的可能性。

       即:在ID3算法的基础上除以否个变量的熵。

                                                                         8.png

      注: C4.5算法倾向于产生不平衡的划分,其中的一个分区比其他分区小得多。

ID3算法的演示

1、首先,我们计算上面4个变量的信息增益,其中:age变量的为0.246,income变量的为0.029,student变量的为0.151,credit_rating变量的为0.048,因此第一次选择我们选择age变量来进行树的分叉。

                            9.png

2、机智的你肯定已经发现对于左边的表格,下一次用student来进行分叉,对于右边的表格,用credit_rating来进行分叉,中间的表格已经搞定了吧!

推荐 4
本文由 张小胖 创作,采用 知识共享署名-相同方式共享 3.0 中国大陆许可协议 进行许可。
转载、引用前需联系作者,并署名作者且注明文章出处。
本站文章版权归原作者及原出处所有 。内容为作者个人观点, 并不代表本站赞同其观点和对其真实性负责。本站是一个个人学习交流的平台,并不用于任何商业目的,如果有任何问题,请及时联系我们,我们将根据著作权人的要求,立即更正或者删除有关内容。本站拥有对此声明的最终解释权。

3 个评论

最近产出高,果然看完 佳标老师的 R语言课程就是不一样
不错
学习了

要回复文章请先登录注册