python手动计算信息增益
2019年5月23日 17:49 by wst
算法实践
概念阐述
对于决策树, 以前看了很多遍, 但是总感觉摸不着它.
里面有个很重要的概念: 信息增益.
今天就来手动实现下, 实现之前先说下它的概念(这个定义里好多名词都有经验二字,是因为都是根据样本得到的).
特征 A 对训练数据集D的信息增益 g(D,A) 定义为: 集合D的经验熵 H(D) 与特征A给定条件下D 的经验条件熵 H(D|A) 之差, 即:
g(D,A) = H(D) - H(D|A)
通俗的说就是: 在一个条件给定情况下,信息不确定性减少的程度!
在决策树生成过程中,每次选择信息增益最大的那个特征作为节点.
举例说明
以买瓜为例,夏天到了, 大家都比较爱吃西瓜, 但是怎么样才能买个好瓜呢? 要不然回家媳妇(女朋友)该说了, 你什么情况? 买个西瓜都买不好. 为了避免挨说, 还是得学好决策树, 搞清楚信息增益是怎么回事.
数据如下: (下载方式: 链接: https://pan.baidu.com/s/1Gr1TLaVwuwi9lO6BcdjoAQ 提取码: wr9j )
编号
色泽
根蒂
敲声
纹理
脐部
触感
好瓜
1
青绿
蜷缩
浊响
清晰
凹陷
硬滑
是
2
乌黑
蜷缩
沉闷
清晰
凹陷
硬滑
是
3
乌黑
蜷缩
浊响
清晰
凹陷
硬滑
是
4
青绿
蜷缩
沉闷
清晰
凹陷
硬滑
是
5
浅白
蜷缩
浊响
清晰
凹陷
硬滑
是
6
青绿
稍蜷
浊响
清晰
稍凹
软粘
是
7
乌黑
稍蜷
浊响
稍糊
稍凹
软粘
是
8
乌黑
稍蜷
浊响
清晰
稍凹
硬滑
是
9
乌黑
稍蜷
沉闷
稍糊