带你搞懂决策树算法原理

一、决策树是什么?

  顾名思义,决策树是由一个个“决策”组成的树,学过数据结构的同学对树一定不陌生。决策树中,结点分为两种,放“决策依据”的是非叶结点,放“决策结果”的是叶结点。
  那么决策是什么呢?很好理解,和人一样,决策就是对于一个问题,有多个答案,选择答案的过程就是决策。在决策树中,通常有两种类型的问题,一种是离散值的问题,一种是连续值的问题。拿选一个好西瓜来比喻,西瓜的纹路是清晰的、稍稍模糊的、还是很模糊的,这是一个离散值的问题,西瓜的密度(质量与体积的比值)是个连续值的问题。决策树就是由一个个的问题与答案生成的。  

  决策树实际上是一个if-then规则的集合。还是拿西瓜问题举例,拿到一个西瓜,先判断它的纹路,如果很模糊,就认为这不是好瓜,如果它清晰,就认为它是一个好瓜,如果它稍稍模糊,就考虑它的密度,密度大于某个值,就认为它是好瓜,否则就是坏瓜。

二、如何生成决策树?

1.经典的ID3算法

  熵是描述信息的不确定度的,是随机变量不确定度的度量。公式是这样的:


H(D)=Kk=1|Ck||D|log2|Ck||D| H ( D ) = − ∑ k = 1 K | C k | | D | l o g 2 | C k | | D |

  其中, |Ck| | C k | D D 中属于 C k 类的样本数, |D| | D | 是样本总数。熵越大,信息的不确定度越大,信息越“混乱”,越不符合决策树分类的需求。所以,我们奔着减小熵的目标来选择分类的依据和分类的结果。
  为了衡量熵的变化,我们引入信息增益的概念。公式是这样的:


H(D|A)=Ni=1|Di|DKk=1|Dik||Di|log2|Dik||Di| H ( D | A ) = − ∑ i = 1 N | D i | D ∑ k = 1 K | D i k | | D i | l o g 2 | D i k | | D i |

g(D,A)=H(D)H(D|A) g ( D , A ) = H ( D ) − H ( D | A )

  其中,根据特征A将样本划分为N个子集, D1,D2,,DN D 1 , D 2 , ⋯ , D N |Di| | D i | 是子集 Di D i 的样本数, |Dik| | D i k | 是子集中属于 Ck C k 类的样本数
  信息增益的含义就是在选定特征A之后,数据的不确定度的下降。信息增益越大,意味着这个特征分类的能力越强,我们就要优先选择这个特征。  
  选择信息增益最大的特征,根据它的属性划分该结点。如果一个子结点中只有一个分类的样本,那么这个结点就不需要再分,这个叶结点的类别就是这个分类的类别;如果所有的特征都已经参与过分类,那么决策树也不需要往下生成,样本数最多的类别就是叶结点的类别。

ID3算法的局限性

(1)不支持连续特征
(2)采用信息增益大的特征优先建立决策树的节点。在相同条件下,取值比较多的特征比取值少的特征信息增益大。
(3)不支持缺失值处理
(4)没有应对过拟合的策略

2. 改进的C4.5算法

C4.5与ID3针对ID3的四个局限性进行了改进

连续特征:C4.5的思路是将连续的特征离散化。比如m个样本的连续特征A的取值有m个,从小到大排列为 a1,a2,,am a 1 , a 2 , ⋯ , a m ,取相邻两个取值的平均值作为划分点,一共有m-1个划分点,分别计算以这些点作为二元分类点时的信息增益比。要注意的是,与离散属性不同的是,如果当前节点为连续属性,则该属性后面还可以参与子节点的产生选择过程。

信息增益:由于信息增益偏向于取值比较多的特征,所以C4.5引入了信息增益比,n是特征A的取值个数


gR(D,A)=g(D,A)HA(D) g R ( D , A ) = g ( D , A ) H A ( D )

HA(D)=ni=1

  • 9
    点赞
  • 61
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值