机器学习:决策树

本文详细介绍了决策树的学习算法,包括ID3、C4.5和CART。ID3算法利用信息增益选择划分属性,C4.5通过信息增益率克服ID3的偏好,而CART则是基于基尼指数。文章还涵盖了剪枝、连续属性离散化等关键概念,并提供了Python代码实现。
摘要由CSDN通过智能技术生成


决策树是很好理解的,如下图。
图片源自维基百科
构造决策树的关键是找到最优划分属性,这个过程中需要解决两个基本问题:

  • 【选择划分属性】若样本有N个属性,那么有 N ! N! N!种属性划分的情况,采用穷举法是不可接受的;
  • 【判定准则】需要有一种指标来判断属性划分的好坏。

然后还需要解决一些其它问题:

  • 连续属性离散化
  • 剪枝

公式符号约定

为了便于讨论,有必要统一公式语言,这里采用西瓜书中的公式语言。

样本集合为 D D D D D D的信息熵为 Ent ⁡ ( D ) \operatorname{Ent}(D) Ent(D)
假定选取的属性 a a a V V V个可能的取值 { a 1 , a 2 , . . . , a V } \{a^1, a^2, ..., a^V\} { a1,a2,...,aV},则用 a a a可以将集合划分为 V V V份,第 v v v份是属性 a a a取值为 a v a^v av的所有样本集合记做 D v D^v Dv
集合加上绝对值就是值集合的大小,如 ∣ D ∣ |D| D表示集合中含有的样本数量。

ID3算法

ID3算法会执行多轮,每轮找一个“当前最优属性”。不难发现,循环N轮则会生成一个高度为N的决策树。

理论学习

【选择划分属性】ID3每轮选择的属性只是当前的最优属性,因此是一种贪心算法,这并不能保证最终选择的划分属性是最优的。但我们不能怪ID3,因为穷举法的性能是不可接受的,所以贪心法已经是一个很不错的妥协了。
例如对于有ABCDE5个属性的样本集,前两轮选择了划分属性CE,第三轮认为CEACEBCED都要好,那么根据贪心法就会选择CEA,贪心法只考虑眼前的最优解。

【判定准则】ID3采用信息增益(information gain) 来判定属性选取的好坏,这借助于香农提出的信息论。
在信息论中信息熵(information entropy)越小则纯度越高,信息熵的公式自己查。
信息增益(information gain)是用划分前的信息熵减去划分后的信息熵,由于划分后集合会被划分为多份,因此划分后集合的信息熵需要加权平均后再比较。

信息熵计算公式:
Ent ⁡ ( D ) = − ∑ k = 1 ∣ Y ∣ p k log ⁡ 2 p k \operatorname{Ent}(D)=-\sum_{k=1}^{|\mathcal{Y}|} p_{k} \log _{2} p_{k} Ent(D)=k=1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值