数据分析算法(一):决策树


一、相关概念

信息熵

H ( D ) = − ∑ k = 1 k ∣ C k ∣ ∣ D ∣ log ⁡ 2 ∣ C k ∣ ∣ D ∣ H(D)=-\sum_{k=1}^{k} \frac{\left|C_{k}\right|}{|D|} \log _{2} \frac{\left|C_{k}\right|}{|D|} H(D)=k=1kDCklog2DCk

其中, ∣ D ∣ \left|D\right| D表示事件中的所有样本点, ∣ C K ∣ \left|C_{K}\right| CK表示事件的第 k k k个可能值出现的次数,所以商值 表示第 k k k个可能值出现的频率。当不

确定性越大时,它所包含的信息量也就越大,信息熵也就越高。

条件熵

基于其他事件计算某个事件的熵,就称为条件熵。条件熵并不等同于条件概率,它是已知事件各取值下条件熵的期望。公式如

下:

H ⁡ ( D ∣ A ) = ∑ i , k P ( A i ) H ⁡ ( D k ∣ A i ) = ∑ i , k P ( A i ) P ( D k ∣ A i ) log ⁡ 2 P ( D k ∣ A i ) = ∑ i = 1 n ∣ D i ∣ ∣ D ∣ ∑ k = 1 k ∣ D i k ∣ ∣ D i ∣ log ⁡ 2 ∣ D i k ∣ ∣ D i ∣ \begin{aligned} \operatorname{H}(D\mid A) &=\sum_{i, k} P\left(A_{i}\right) \operatorname{H}\left(D_{k} \mid A_{i}\right) \\ &=\sum_{i, k} P\left(A_{i}\right) P\left(D_{k} \mid A_{i}\right) \log _{2} P\left(D_{k} \mid A_{i}\right) \\ &=\sum_{i=1}^{n} \frac{\left|D_{i}\right|}{|D|} \sum_{k=1}^{k} \frac{\left|D_{ik}\right|}{\left|D_{i}\right|} \log _{2} \frac{\left|D_{ik}\right|}{\left|D_{i}\right|}\\ \end{aligned} H(DA)=i,kP(Ai)H(DkAi)=i,kP(Ai)P(DkAi)log2P(DkAi)=i=1nDDik=1kDiDiklog2DiDik

其中, P ( A i ) P\left(A_{i}\right) P(Ai)表示 A事件的第i种值对应的概率

P ( D k ∣ A i ) P\left(D_{k} \mid A_{i}\right) P(DkAi)为已知 A i A_{i} Ai的情况下, D D D事件为 k k k值的条件熵,其对应的计算公式为: P ( D k ∣ A i ) log ⁡ 2 P ( D k ∣ A i ) P\left(D_{k} \mid A_{i}\right) \log _{2} P\left(D_{k} \mid A_{i}\right) P(DkAi)log2P(DkAi)

∣ D i ∣ \left|D_{i}\right| Di表示 A i A_{i} Ai的频数, 表示 A i A_{i} Ai在所有样本中的频率

∣ D i k ∣ \left|D_{i k}\right| Dik表示 A i A_{i} Ai D D D事件为 k k k值的频数,表示所有 A i A_{i} Ai中, D D D事件为 k k k值的频率。

信息增益

信息增益指的就是划分可以带来纯度的提高,信息熵的下降。它的计算公式,是父亲节点的信息熵减去所有子节点的信息熵,每

一步下降的量就称为信息增益。他的计算公式表示为:

Gain ⁡ ( D , A ) = H ( D ) − H ( D ∣ A ) \operatorname{Gain}(D, A)=H(D)-H(D \mid A) Gain(D,A)=H(D)H(DA)

由如上公式可知,对于已知的事件 A A A来说,事件 D D D的信息增益就是 D D D的信息熵与 A A A事件下 D D D的条件熵之差,事件 A A A对事件 D D D的影

响越大,条件熵 H ( D ∣ A ) H(D|A) H(DA)就会越小(在事件 A A A的影响下,事件 D D D被划分得越“纯净”),体现在信息增益上就是差值越大,进而说

明事件 D D D的信息熵下降得越多。所以,在根节点或中间节点的变量选择过程中,就是挑选出各自变量下因变量的信息增益最大

的。

信息增益率

为了克服信息增益指标的缺点,有人提出了信息增益率的概念,它的思想很简单,就是在信息增益的基础上进行相应的惩罚。信

息增益率的公式可以表示为:

 GainRatio  ( D , A ) = Gain ⁡ ( D , A ) H ( A ) \text { GainRatio }(D,A)=\frac{\operatorname{Gain}(D,A)}{H(A)}  GainRatio (D,A)=H(A)Gain(D,A)

其中, H ( A ) H(A) H(A)为事件 A A A的信息熵。事件 A A A的取值越多, G a i n ( D , A ) Gain(D,A) Gain(D,A)可能越大,但同时 H ( A ) H(A) H(A)也会越大,这样以商的形式就实现

G a i n ( D , A ) Gain(D,A) Gain(D,A)的惩罚。

基尼系数

基尼系数本身反应了样本的不确定度。当基尼系数越小的时候,说明样本之间的差异性小,不确定程度低。分类的过程本身是一

个不确定度降低的过程,即纯度的提升过程。所以 CART 算法在构造分类树的时候,会选择基尼系数最小的属性作为属性的划

分。基尼指数的计算公式可以表示为:

Gini ⁡ ( p 1 , p 2 , ⋯ p k ) = ∑ k = 1 K p k ( 1 − p k ) = ∑ k = 1 K ( p k − p k 2 ) = 1 − ∑ k = 1 K p k 2 \operatorname{Gini}\left(p_{1}, p_{2}, \cdots p_{k}\right)=\sum_{k=1}^{K} p_{k}\left(1-p_{k}\right)=\sum_{k=1}^{K}\left(p_{k}-p_{k}^{2}\right)=1-\sum_{k=1}^{K} p_{k}^{2} Gini(p1,p2,pk)=k=1Kpk(1pk)=k=1K(pkpk2)=1k=1Kpk2

其中, p k p_k pk表示某事件第 k k k个可能值的发生概率,该概率可以使用经验概率表示,所以基尼指数可以重写为:

Gini ⁡ ( D ) = 1 − ∑ k = 1 K ( ∣ C k ∣ ∣ D ∣ ) 2 \operatorname{Gini}(D)=1-\sum_{k=1}^{K}\left(\frac{\left|C_{k}\right|}{|D|}\right)^{2} Gini(D)=1k=1K(DCk)2

其中, ∣ D ∣ |D| D表示事件中的所有样本点, ∣ C k ∣ |C_k| Ck表示事件的第 k k k个可能值出现的次数,所以概率值 p k p_k pk就是所表示的频率。

条件基尼系数

条件基尼指数仍然是某变量各取值下条件基尼指数的期望,所不同的是,条件基尼指数采用的是二分法原理。对于三个及以上不

同值的离散变量来说,在计算条件基尼指数时会稍微复杂一些,因为该变量在做二元划分时会产生多对不同的组合。所以在计算

条件基尼指数时就需要考虑三种及以上组合的值,最终从三种值中挑选出最小的作为该变量的二元划分。条件基尼指数的计算公

式可以表示为:

Gini ⁡ ( D ∣ A ) = ∑ i , k P ( A i ) Gini ⁡ ( D k ∣ A i ) = ∑ i = 1 2 P ( A i ) ( 1 − ∑ k = 1 K ( p i k ) 2 ) = ∑ i = 1 2 P ( ∣ D i ∣ ∣ D ∣ ) ( 1 − ∑ k = 1 K ( ∣ D i k ∣ ∣ D i ∣ ) 2 ) \begin{aligned} \operatorname{Gini}(D\mid A) &=\sum_{i, k} P\left(A_{i}\right) \operatorname{Gini}\left(D_{k} \mid A_{i}\right) \\ &=\sum_{i=1}^{2} P\left(A_{i}\right)\left(1-\sum_{k=1}^{K}\left(p_{i k}\right)^{2}\right) \\ &=\sum_{i=1}^{2} P\left(\frac{\left|D_{i}\right|}{|D|}\right)\left(1-\sum_{k=1}^{K}\left(\frac{\left|D_{i k}\right|}{\left|D_{i}\right|}\right)^{2}\right) \end{aligned} Gini(DA)=i,kP(Ai)Gini(DkAi)=i=12P(Ai)(1k=1K(pik)2)=i=12P(DDi)(1k=1K(DiDik)2)

其中, P ( A i ) P(A_i) P(Ai)表示 A A A变量在某个二元划分下第 i i i组的概率,其对应的经验概率为 ∣ D i ∣ ∣ D ∣ \frac{\left|D_{i}\right|}{|D|} DDi ,即 A A A变量中第 i i i组的样本量与总样本量的商

G i n i ( D k ∣ A i ) Gini(D_{k}|A_i) Gini(DkAi)表示在已知分组 A i A_i Ai的情况下,变量 D D D取第 k k k种值的条件基尼指数

其中, ∣ D i k ∣ ∣ D i ∣ \frac{\left|D_{ik}\right|}{|D_i|} DiDik表示分组Ai内变量D取第k种值的频率。

基尼系数下降速度

与信息增益类似,还需要考虑自变量对因变量的影响程度,即因变量的基尼指数下降速度的快慢,下降得越快,自变量对因变量

的影响就越强。下降速度的快慢可用下方式子衡量:

△ Gini ⁡ ( D ) = Gini ⁡ ( D ) − Gini ⁡ ( D ∣ A ) \triangle \operatorname{Gini}(D)=\operatorname{Gini}(D)-\operatorname{Gini}(D\mid A) Gini(D)=Gini(D)Gini(DA)

二、相关算法

我们以打篮球的数据集为例,详细说明决策树的分析步骤

 天气   温度   湿度   刮风   是否打篮球   晴天   高   中   否   否   晴天   高   中   是   否   阴天   高   高   否   是   小雨   高   高   否   是   小雨   低   高   否   否   晴天   中   中   是   是   阴天   中   高   是   否  \begin{array}{|c|c|c|c|c|} \hline \text { 天气 } & \text { 温度 } & \text { 湿度 } & \text { 刮风 } & \text { 是否打篮球 } \\ \hline \text { 晴天 } & \text { 高 } & \text { 中 } & \text { 否 } & \text { 否 } \\ \hline \text { 晴天 } & \text { 高 } & \text { 中 } & \text { 是 } & \text { 否 } \\ \hline \text { 阴天 } & \text { 高 } & \text { 高 } & \text { 否 } & \text { 是 } \\ \hline \text { 小雨 } & \text { 高 } & \text { 高 } & \text { 否 } & \text { 是 } \\ \hline \text { 小雨 } & \text { 低 } & \text { 高 } & \text { 否 } & \text { 否 } \\ \hline \text { 晴天 } & \text { 中 } & \text { 中 } & \text { 是 } & \text { 是 } \\ \hline \text { 阴天 } & \text { 中 } & \text { 高 } & \text { 是 } & \text { 否 } \\ \hline \end{array}  天气  晴天  晴天  阴天  小雨  小雨  晴天  阴天  温度                湿度                刮风                是否打篮球               

ID3算法

  1. 计算信息熵

    7条数据中,3次去打篮球,4此不去打篮球,因此信息熵为:

    H ( D ) = − 3 7 log ⁡ 2 3 7 − 4 7 log ⁡ 2 4 7 = 0.985 H(D)=-\frac{3}{7} \log _{2} \frac{3}{7}-\frac{4}{7} \log _{2} \frac{4}{7}=0.985 H(D)=73log27374log274=0.985

  2. 计算每个属性的条件熵

    (1) 天气:3次晴天(1次去,2次不去),2次阴天(1次去,1次不去),2次小雨(1次去,1次不去)

    H ( D ∣ 天气 ) = − 3 7 ( 1 3 log ⁡ 2 ( 1 3 ) + 2 3 log ⁡ 2 ( 2 3 ) ) − 2 7 ( 1 2 log ⁡ 2 ( 1 2 ) + 1 2 log ⁡ 2 ( 1 2 ) ) − 2 7 ( 1 2 log ⁡ 2 ( 1 2 ) + 1 2 log ⁡ 2 ( 1 2 ) ) = 0.965 \begin{array}{c} H(D\mid \text {天气})=-\frac{3}{7}\left(\frac{1}{3} \log_{2} \left(\frac{1}{3}\right)+\frac{2}{3} \log_{2} \left(\frac{2}{3}\right)\right)-\frac{2}{7}\left(\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)+\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)\right) -\frac{2}{7}\left(\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)+\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)\right)=0.965\\ \end{array} H(D天气)=73(31log2(31)+32log2(32))72(21log2(21)+21log2(21))72(21log2(21)+21log2(21))=0.965

    (2) 温度:4次高(2次去,2次不去),2次中(1次去,1次不去),1次低(不去)

    H ( D ∣ 温度 ) = − 4 7 ( 1 2 log ⁡ 2 ( 1 2 ) + 1 2 log ⁡ 2 ( 1 2 ) ) − 2 7 ( 1 2 log ⁡ 2 ( 1 2 ) + 1 2 log ⁡ 2 ( 1 2 ) ) − 0 = 0.857 \begin{array}{c} H(D\mid \text {温度})=-\frac{4}{7}\left(\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)+\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)\right)-\frac{2}{7}\left(\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)+\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)\right)-0=0.857 \\ \end{array} H(D温度)=74(21log2(21)+21log2(21))72(21log2(21)+21log2(21))0=0.857

    (3) 湿度:4次高(2次去,2次不去),3次中(1次去,2次不去)

    H ( D ∣ 湿度 ) = − 4 7 ( 1 2 log ⁡ 2 ( 1 2 ) + 1 2 log ⁡ 2 ( 1 2 ) ) − 3 7 ( 1 3 log ⁡ 2 ( 1 3 ) + 2 3 log ⁡ 2 ( 2 3 ) ) = 0.965 \begin{array}{c} H(D\mid \text {湿度})=-\frac{4}{7}\left(\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)+\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)\right)-\frac{3}{7}\left(\frac{1}{3} \log_{2} \left(\frac{1}{3}\right)+\frac{2}{3} \log_{2} \left(\frac{2}{3}\right)\right) =0.965\\ \end{array} H(D湿度)=74(21log2(21)+21log2(21))73(31log2(31)+32log2(32))=0.965

    (4) 刮风:3次刮风(1次去,2次不去),4次不刮风(2次去,2次不去)

    H ( D ∣ 刮风 ) = − 3 7 ( 1 3 log ⁡ 2 ( 1 3 ) + 2 3 log ⁡ 2 ( 2 3 ) ) − 4 7 ( 1 2 log ⁡ 2 ( 1 2 ) + 1 2 log ⁡ 2 ( 1 2 ) ) = 0.965 \begin{array}{c} H(D\mid \text {刮风})=-\frac{3}{7}\left(\frac{1}{3} \log_{2} \left(\frac{1}{3}\right)+\frac{2}{3} \log_{2} \left(\frac{2}{3}\right)\right)-\frac{4}{7}\left(\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)+\frac{1}{2} \log_{2} \left(\frac{1}{2}\right)\right) =0.965\\ \end{array} H(D刮风)=73(31log2(31)+32log2(32))74(21log2(21)+21log2(21))=0.965

  3. 计算信息增益

     Gain  ( D,天气 ) = H ( D ) − H ( D ∣ 天气 ) = 0.985 − 0.965 = 0.020 \text { Gain }(\text {D,天气})=H(\text {D})-H(\text {D} \mid \text {天气})=0.985-0.965=0.020  Gain (D,天气)=H(D)H(D天气)=0.9850.965=0.020

     Gain  ( D,温度 ) = H ( D ) − H ( D ∣ 温度 ) = 0.985 − 0.857 = 0.128 \text { Gain }(\text {D,温度})=H(\text {D})-H(\text {D} \mid \text {温度})=0.985-0.857=0.128  Gain (D,温度)=H(D)H(D温度)=0.9850.857=0.128

     Gain  ( D,湿度 ) = H ( D ) − H ( D ∣ 湿度 ) = 0.985 − 0.965 = 0.020 \text { Gain }(\text {D,湿度})=H(\text {D})-H(\text {D} \mid \text {湿度})=0.985-0.965=0.020  Gain (D,湿度)=H(D)H(D湿度)=0.9850.965=0.020

     Gain  ( D,刮风 ) = H ( D ) − H ( D ∣ 刮风 ) = 0.985 − 0.965 = 0.020 \text { Gain }(\text {D,刮风})=H(\text {D})-H(\text {D} \mid \text {刮风})=0.985-0.965=0.020  Gain (D,刮风)=H(D)H(D刮风)=0.9850.965=0.020

    我们能看出来温度作为属性的信息增益最大。因为 ID3 就是要将信息增益最大的节点作为父节点,这样可以得到纯度高的决策树,所以我们将温度作为根节点。其决策树状图分裂为下图所示:

在这里插入图片描述

然后我们要将上图中第一个叶节点,也就是温度进一步进行分裂,往下划分,计算其不同属性(天气、湿度、刮风)作为节点的信息增益,可以得到:

G a i n ( 温 度 : 高 , 湿 度 ) = 1 Gain(温度:高 , 湿度)=1 Gain(,湿)=1

G a i n ( 温 度 : 高 , 天 气 ) = 1 Gain(温度:高 , 天气)=1 Gain(,)=1

G a i n ( 温 度 : 高 , 刮 风 ) = 0.3115 Gain(温度:高 , 刮风)=0.3115 Gain(,)=0.3115

我们能看到湿度,或者天气在温度为高的节点都可以得到最大的信息增益,这里我们选取湿度作为节点的属性划分。同理,我们可以按照上面的计算步骤得到完整的决策树,结果如下:

在这里插入图片描述

C4.5算法

  1. 计算各属性的信息熵

    H ( 天 气 ) = − 3 7 log ⁡ 2 3 7 − 2 7 log ⁡ 2 2 7 − 2 7 log ⁡ 2 2 7 = 1.557 H(天气)=-\frac{3}{7} \log _{2} \frac{3}{7}-\frac{2}{7} \log _{2} \frac{2}{7}-\frac{2}{7} \log _{2} \frac{2}{7}=1.557 H()=73log27372log27272log272=1.557

    H ( 温 度 ) = − 4 7 log ⁡ 2 4 7 − 2 7 log ⁡ 2 2 7 − 1 7 log ⁡ 2 1 7 = 1.379 H(温度)=-\frac{4}{7} \log _{2} \frac{4}{7}-\frac{2}{7} \log _{2} \frac{2}{7}-\frac{1}{7} \log _{2} \frac{1}{7}=1.379 H()=74log27472log27271log271=1.379

    H ( 湿 度 ) = − 4 7 log ⁡ 2 4 7 − 3 7 log ⁡ 2 3 7 = 0.985 H(湿度)=-\frac{4}{7} \log _{2} \frac{4}{7}-\frac{3}{7} \log _{2} \frac{3}{7}=0.985 H(湿)=74log27473log273=0.985

    H ( 刮 风 ) = − 3 7 log ⁡ 2 3 7 − 4 7 log ⁡ 2 4 7 = 0.985 H(刮风)=-\frac{3}{7} \log _{2} \frac{3}{7}-\frac{4}{7} \log _{2} \frac{4}{7}=0.985 H()=73log27374log274=0.985

  2. 计算信息增益率

     GainRatio  ( D , 天 气 ) = Gain ⁡ ( D , 天 气 ) H ( 天 气 ) = 0.128 \text { GainRatio }(D,天气)=\frac{\operatorname{Gain}(D,天气)}{H(天气)}= 0.128  GainRatio (D,)=H()Gain(D,)=0.128

     GainRatio  ( D , 温 度 ) = Gain ⁡ ( D , 温 度 ) H ( 温 度 ) = 0.093 \text { GainRatio }(D,温度)=\frac{\operatorname{Gain}(D,温度)}{H(温度)}=0.093  GainRatio (D,)=H()Gain(D,)=0.093

     GainRatio  ( D , 湿 度 ) = Gain ⁡ ( D , 湿 度 ) H ( 湿 度 ) = 0.203 \text { GainRatio }(D,湿度)=\frac{\operatorname{Gain}(D,湿度)}{H(湿度)}=0.203  GainRatio (D,湿)=H(湿)Gain(D,湿)=0.203

     GainRatio  ( D , 刮 风 ) = Gain ⁡ ( D , 刮 风 ) H ( 刮 风 ) = 0.203 \text { GainRatio }(D,刮风)=\frac{\operatorname{Gain}(D,刮风)}{H(刮风)}=0.203  GainRatio (D,)=H()Gain(D,)=0.203

    湿度和刮风的信息增益率最高,这里选择湿度为根节点,之后继续重复上述步骤,方法类似ID3算法,介于步骤繁琐,作者就不一一列举了≡(▔﹏▔)≡。

CART算法

  1. 计算基尼系数

    Gini ⁡ ( D ) = 1 − ( 3 7 ) 2 − ( 4 7 ) 2 = 0.450 \operatorname{Gini}(\text {D}) = 1-\left(\frac{3}{7}\right)^{2}-\left(\frac{4}{7}\right)^{2} = 0.450 Gini(D)=1(73)2(74)2=0.450

  2. 计算条件基尼系数

    下面分别计算自变量天气、温度、湿度和刮风对因变量是否打篮球的条件基尼指数:

    (1) 天气

    打包处理为:晴天与非晴天(阴天与小雨为一组),阴天与非阴天(晴天与小雨为一组),小雨与非小雨(晴天与阴天为一组)

    Gini ⁡ ( D ∣ 晴 天 ) = 3 7 ( 1 − ( 2 3 ) 2 − ( 1 3 ) 2 ) + 4 7 ( 1 − ( 1 2 ) 2 − ( 1 2 ) 2 ) = 0.476 \begin{aligned} &\operatorname{Gini}(D\mid 晴天)=\frac{3}{7}\left(1-\left(\frac{2}{3}\right)^{2}-\left(\frac{1}{3}\right)^{2}\right)+\frac{4}{7}\left(1-\left(\frac{1}{2}\right)^{2}-\left(\frac{1}{2}\right)^{2}\right)=0.476\end{aligned} Gini(D)=73(1(32)2(31)2)+74(1(21)2(21)2)=0.476

    Gini ⁡ ( D ∣ 阴 天 ) = 2 7 ( 1 − ( 1 2 ) 2 − ( 1 2 ) 2 ) + 5 7 ( 1 − ( 2 5 ) 2 − ( 3 5 ) 2 ) = 0.486 \begin{aligned} &\operatorname{Gini}(D\mid 阴天)=\frac{2}{7}\left(1-\left(\frac{1}{2}\right)^{2}-\left(\frac{1}{2}\right)^{2}\right)+\frac{5}{7}\left(1-\left(\frac{2}{5}\right)^{2}-\left(\frac{3}{5}\right)^{2}\right)=0.486\end{aligned} Gini(D)=72(1(21)2(21)2)+75(1(52)2(53)2)=0.486

    Gini ⁡ ( D ∣ 小 雨 ) = 2 7 ( 1 − ( 1 2 ) 2 − ( 1 2 ) 2 ) + 5 7 ( 1 − ( 2 5 ) 2 − ( 3 5 ) 2 ) = 0.486 \begin{aligned} &\operatorname{Gini}(D\mid 小雨)=\frac{2}{7}\left(1-\left(\frac{1}{2}\right)^{2}-\left(\frac{1}{2}\right)^{2}\right)+\frac{5}{7}\left(1-\left(\frac{2}{5}\right)^{2}-\left(\frac{3}{5}\right)^{2}\right)=0.486\end{aligned} Gini(D)=72(1(21)2(21)2)+75(1(52)2(53)2)=0.486

    由于最小值为0.476,故将晴天与非晴天作为变量天气的二元划分。

    其余变量计算方法类似,温度和湿度需要打包分组,刮风可直接计算。

  3. 计算基尼系数下降速度

    以天气为例:

    △ Gini ⁡ ( D ) = Gini ⁡ ( D ) − Gini ⁡ ( D ∣ 晴 天 ) = 0.450 − 0.476 = − 0.026 \triangle \operatorname{Gini}(D)=\operatorname{Gini}(D)-\operatorname{Gini}(D\mid 晴天)= 0.450-0.476=-0.026 Gini(D)=Gini(D)Gini(D)=0.4500.476=0.026

    再计算其余属性的下降速度,值最大的变量用于根节点的条件判断。接下来的步骤类似上述两种算法,继续迭代,直至结

    束。

三、总结

以上是对决策树三种经典算法的原理及步骤的解释,利用python可直接实现ID3算法和CART算法,希望上述文章可以帮助你真

正理解使用决策树方法进行分类时具体的处理方法。

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值