第一章节看的非常舒服,轻松就理解了k-紧邻算法和手写体识别的例子。
结果第二章给我当头一棒,反复看就看不懂啊。完全不知道译者说的名词的意思!
个人感觉译者(当然是作者限制的内容)没法形象的解释怎么个策略选择节点和生成分支。
尤其是 带划分数据集, 划分数据集特征,需要返回特征等,都无法和实际的例子结合理解。
头大之际, 只好去搜索前人的学习笔记了。
https:// huanlan.zhihu.com/p/26703300 这篇笔记写的太精彩了,看了豁然开朗。什么熵,什么信息量,其实都
抵不过一个形象的西瓜的例子! 作者总结的太好了,还是周老师的书给力。
精彩的形象的描述了 怎么选择根节点,为何根节点是纹理而不是根蒂?
附带就把熵和信息增益给说明白了。
为何某个节点是“根蒂”? 因为选择根蒂后,下一步再分析别的属性去选择好瓜坏瓜需要的工作量更少。
也就是信息的“纯度”。换个角度看,就是第一级先把最重要的属性选择出来,经过第一级的分离,最重要的工作先做了,后面要做的工作就
少了。犹如:盖楼先做地基,而不是先盖顶棚啊。 这个第一级跟节点的选择就是 “地基”的概念。
当然那么多属性,肉眼是看不出来的, 怎么知道哪个属性合适做第一级? 这个时候 “信息量”和“信息增益”就合理的出来了。
如果属性少,分类少,我们肉眼就看出来if then else的流程了。如果属性特别多,怎么办? 怎么选择每层的特征?
下面是ID3算法的理解。以西瓜为例:
有色泽 根蒂 敲声 纹理 肚脐 触感 ,然后分类 好瓜 坏瓜
那么哪个属性的信息量权重最大? 可以作为根节点的属性? 这个就要以样本数据的统计结果来决定了。
也就是这个属性的信息的“重要度”。这里引入 熵和信息增益
数据集的根节点的“信息纯度“ =“熵” , 当前的数据中,9个好瓜,8个坏瓜
那么 -((8/17)*log2 (8/17) + (9/17)*log2 (9/17)) = 熵 0.998
对于“色泽”的每个取值的“熵”也就是条件熵:
“青绿” = 三个好瓜 三个坏瓜 = 1
“乌黑” = 四个好瓜 两个坏瓜 =0.918
“浅白” = 一个好瓜 五个坏瓜 =0.722
信息增益就是: 熵- (青绿熵*6/17 + 乌黑熵*6/17 + 浅白熵*5/17)= 0.10