这个例子是李航博士统计统计学习方法的例子,博客的内容是按照自己的理解做一个计算的过程的记录。
ID | 年龄 | 有工作 | 有自己的房子 | 信贷情况 | 类别 |
1 | 青年 | 否 | 否 | 一般 | 否 |
2 | 青年 | 否 | 否 | 好 | 否 |
3 | 青年 | 是 | 否 | 好 | 是 |
4 | 青年 | 是 | 是 | 一般 | 是 |
5 | 青年 | 否 | 否 | 一般 | 否 |
6 | 中年 | 否 | 否 | 一般 | 否 |
7 | 中年 | 否 | 否 | 好 | 否 |
8 | 中年 | 是 | 是 | 好 | 是 |
9 | 中年 | 否 | 是 | 非常好 | 是 |
10 | 中年 | 否 | 是 | 非常好 | 是 |
11 | 老年 | 否 | 是 | 非常好 | 是 |
12 | 老年 | 否 | 是 | 好 | 是 |
13 | 老年 | 是 | 否 | 好 | 是 |
14 | 老年 | 是 | 否 | 非常好 | 是 |
15 | 老年 | 否 | 否 | 一般 | 否 |
信息熵公式:
具体的计算过程:
15个样本中,类别为“是”的是9个,为“否”的是6个
计算“有自己的房子”的条件熵,
有自己的房子的样本为6个,类别是6个是,0个否
没自己的房子的样本为9个,类别是3个是,6个否
是否有房子信息增益熵为:
如果我们计算ID列的信息增益熵,
先计算样本熵:
再计算ID列信息增益熵
此时“ID”的信息增益熵明显高于“是否有房子”这个特征的,但是这个特征这样分是没什么用的,这也是ID3算法永远存在的bug,所以从ID3到C4.5使用信息增益比来替代信息增益熵这个标准。
信息增益比的计算公式:
对于是否有房子这个特征的信息增益比:
对于ID这个特征的信息增益比:
从信息增益熵到信息增益比,可以过滤掉类似与于ID这一类没有什么卵用,但是信息增益熵很高这一类特征。