没有腹肌的山寨机 · 安东尼·戴维斯(美国职业篮球运动员)_百度百科· 3 月前 · |
耍酷的书包 · 逆天改命漫画_我靠抽签逆天改命漫画_我在异界 ...· 1 年前 · |
想出家的水煮鱼 · 兄不友弟不恭同人,漫画同人 - 快看漫画· 1 年前 · |
温柔的人字拖 · 别克新能源 微蓝6 ...· 1 年前 · |
ID3算法有以下几个缺点:
1个属性取值越多,则此属性的信息增益率越大,越有可能被ID3选为当前分类属性。然而取值较多的属性并不一定最优。(例如一个属性的每个子节点都只有1个样本,此时信息增益率达到最大,但是用这样的属性却没有任何意义)
ID3只能处理离散型属性
可以处理缺失数据
可以对树进行剪枝
针对ID3算法的不足,Quinlan又提出了C4.5,C4.5算法采用信息增益率来取代信息增益作为当前最优决策属性的度量标准。
仍然选择weka中天气的数据集为例子:
outlook | temperature | humidity | windy | play |
---|---|---|---|---|
sunny | hot | high | FALSE | no |
sunny | hot | high | TRUE | no |
overcast | hot | high | FALSE | yes |
rainy | mild | high | FALSE | yes |
rainy | cool | normal | FALSE | yes |
rainy | cool | normal | TRUE | no |
overcast | cool | normal | TRUE | yes |
sunny | mild | high | FALSE | no |
sunny | cool | normal | FALSE | yes |
rainy | mild | normal | FALSE | yes |
sunny | mild | normal | TRUE | yes |
overcast | mild | high | TRUE | yes |
overcast | hot | normal | FALSE | yes |
rainy | mild | high | TRUE | no |
对于连续型属性,C4.5先把它当转换成离散型属性再进行处理。本质上属性取值连续,但对于有限的采样数据它是离散的。例如某连续型属性有N个不同取值,则有N-1种离散化的方法: <= 的分到左子树, > 的分到右子树,然后计算N-1种情况下最大的信息增益率。
对于离散型属性只需计算1次信息增益率,但连续型属性却需要计算N-1次。为了减少计算量,可对连续属性先进行排序,在只有label发生变化的地方才需要切开。比如:
原本需要计算13种情况,现在仅需计算7种。
+ 利用信息增益率来选择连续值属性的分界点存在的问题
由于C4.5对于连续值属性,每次选取一个分裂点进行分裂,即二分裂。此时
对于离散型属性,C4.5一次进行分裂后,后续不再使用该属性。但是对于连续型属性,由于进行的是二分裂,故下一次分裂可能还会继续用到该属性。例如:
连续属性attr1会被用到多次。
仍然以下表为例说明:
Day | Outlook | Temperature | Humidity | Wind | play |
---|---|---|---|---|---|
D1 | Sunny | Hot | High | Weak | No |
D2 | ? | Hot | High | Strong | No |
D3 | ? | ? | High | ? | Yes |
D4 | Rain | Mild | High | Weak | Yes |
D5 | Rain | Cool | ? | Weak | Yes |
D6 | Rain | Cool | Normal | Strong | No |
D7 | Overcast | Cool | Normal | Strong | Yes |
D8 | ? | Mild | High | ? | No |
D9 | ? | Cool | Normal | Weak | Yes |
D10 | ? | ? | Normal | ? | Yes |
D11 | ? | Mild | Normal | ? | Yes |
D12 | Overcast | Mild | ? | Strong | Yes |
D13 | Overcast | Hot | ? | Weak | Yes |
D14 | Rain | Mild | High | Strong | No |
属性outlook的信息增益为:
计算属性outlook的
S
p
l
i
t
I
n
f
o
,此时将缺失值当作一种单独的属性:
属性outlook的信息增益率为
以下表为例进行说明:
后面的计算步骤与上面完全相同,此处省略
在C4.5算法中,带有缺失属性的样本会被分配到所有的子节点中,但是带有一个权值。即普通样本的权值为1,但缺失属性的样本权值为小数。如下图:
后面再继续分裂时,计算信息增益和增益率与上面的方法相同,只有样本个数中含有小数,计算过程此处省略。
遇到一个未知label样本需要预测,但属性值中含有缺失数据时,按照3.2中的方法将该属性分别归类到所有子节点中,最后计算为各个标签的概率,取概率最大的标签作为最终的标签。如下图:
先假设碰到了一个需要预测的样本,但是attr1和attr2都不知,因此该样本为标签为yes的概率为:
为了防止C4.5分裂过度,造成过拟合现象,ross quinlan提出了两种剪枝方法:
pessimistic pruning
far more pessimistic estimate
把一颗子树(有多个叶子节点)用一个叶子节点代替,在训练集上的误判率肯定是上升的,但在新的数据集上不一定。于是需要将叶子节点的错误率加上一个惩罚因子,此处取为0.5[Quinlan, 1987e]。如果一个叶子节点有N个样本,其中E个被误判,则该叶子节点的误判率为
E
+
0.5
N
。对于一颗子树,如果有L个叶子节点,则剪枝前该子树的误判率为: