文章目录
决策树是很好理解的,如下图。
构造决策树的关键是找到最优划分属性,这个过程中需要解决两个基本问题:
- 【选择划分属性】若样本有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,因为穷举法的性能是不可接受的,所以贪心法已经是一个很不错的妥协了。
例如对于有ABCDE
5个属性的样本集,前两轮选择了划分属性CE
,第三轮认为CEA
比CEB
和CED
都要好,那么根据贪心法就会选择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∑