下面举例说明如何划分,给定数据集如下(数据集来自周志华《机器学习》) 可复制数据集在如下评论第一条! |
对连续属性的处理如下: |
|||||||||
1. 对特征的取值进行升序排序 |
|||||||||
因此对于数据集中的属性“密度”,决策树开始学习时,根节点包含的17个训练样本在该属性上取值均不同。我们先把“密度”这些值从小到大排序: |
0.243 | 0.245 | 0.343 | 0.36 | 0.403 | 0.437 | 0.481 | 0.556 | 0.593 | 0.608 | 0.634 | 0.639 | 0.657 | 0.666 | 0.697 | 0.719 | 0.774 |
根据计算Ta的公式,可得如下结果值: |
(0.243+0.245)/2=0.244 | (0.245+0.343)/2=0.294 | (0.343+0.36)/2=0.352 | (0.36+0.403)/2=0.382 | ||||||||
(0.403+0.437)/2=0.420 | (0.437+0.481)/2=0.459 | (0.481+0.556)/2=0.519 | (0.556+0.593)/2=0.575 | ||||||||
(0.593+0.608)/2=0.601 | (0.608+0.634)/2=0.621 | (0.634+0.639)/2=0.637 | (0.639+0.657)/2=0.648 | ||||||||
(0.657+0.666)/2=0.662 | (0.666+0.697)/2=0.682 | (0.697+0.719)/2=0.708 | (0.719+0.774)/2=0.747 |
0.244 | 0.294 | 0.352 | 0.382 | 0.420 | 0.459 | 0.519 | 0.575 | 0.601 | 0.621 | 0.637 | 0.648 | 0.662 | 0.682 | 0.708 | 0.747 |
2.Gain(D,a,t)是样本集D基于划分点t二分后的信息增益。划分的时候,选择使用Gain(D,a,t)最大的划分点 |
|||||||||
Ent(D)=-(8/17*LOG(8/17,2)+9/17*LOG(9/17,2))=0.998 | |||||||||
记录为{a1,a2,…,an}.基于划分点t可将D分为子集D-t和D+t,其中D-t是包含那些在属性a上取值不大于t的样本,D+t则是包含那些在属性a上取值大于t的样本。显然,对相邻的属性取值ai与ai+1来说,t在区间a(ai,ai+1)中取任意值所产生的划分结果相同。因此,对连续属性a,我们可考察包含n-1个元素的候选划分点集合 |
即把区间(ai,ai+1)的中位点ai+ai+1作为候选划分点。然后我们就可以像前面处理离散属性值那样来考虑这些划分点,选择最优的划分点进行样本集合的划分,使用公式如下: |
其中Gain(D,a,t)是样本集D基于划分点t二分后的信息增益。划分的时候,选择使用Gain(D,a,t)最大的划分点。 |
下面开始计算t取不同值时的信息增益: |
|
当t=0.244时 |
0.244 | 0.294 | 0.352 | 0.382 | 0.420 | 0.459 | 0.519 | 0.575 | 0.601 | 0.621 | 0.637 | 0.648 | 0.662 | 0.682 | 0.708 | 0.747 |
D-t={0.243} | |||||||||
D+t |