data mining - 实用机器学习工具与技术 读书笔记 ( 四 )

在 《 data mining - 实用机器学习工具与技术 》中,读到 Decision Tree 这一章,有点卡顿。原因是自己并不知道 Tree 以及 Decision Tree 的区别在哪里,看了几天书,翻了翻 wikipedia.org, 还是不理解。但是要做下笔记,说明曾经到过这个地方了。

在 data mining - 实用机器学习工具与技术 读书笔记(三)中,谈到在构建天气与室内室外运动相关的决策树例子中(可能是高尔夫,据说是个经典例子,但我是跳看的,只看到一个列表的数据),有一个表达式,关于 info[(2,3)] 的计算公式。这个公式起初怎么也不明白,结果就是一个小数呢。有了贝叶斯的经验,我决定还是再从 《 Discrete 》离散数学机器应用这本书找找答案。 从 Tree 这一章看,也就有了后来的 《 Discrete 》读书笔记(三)。 但是一直到 Depth-first 也没有 Decision Tree 的讲解。无奈翻翻 《概率与统计》《托马斯微积分》同样,无解,因为我根本对两本书都不通嘛。

于是上知乎,搜索 Decision Tree, 有了。原来是 information theory , entropy, ID3, C4.5 的应用。
从 wikipedia 入手吧,只能做个翻译,给自己先了解点基础,做做笔记

Entropy : http://en.wikipedia.org/wiki/Entropy_(information_theory)
ID3 algorithm http://en.wikipedia.org/wiki/ID3_algorithm
C4.5 algorithm http://en.wikipedia.org/wiki/C4.5_algorithm

还有一本书, 《 Elements of Information Theory 》,也是一堆公式堆砌。还是 wikipedia 白话文好懂。

什么是 Entropy ? Entropy 是对一组事件出现概率不确定性的度量。这里是信息论中的说法。简单来说:
1) 如果一组事件中,只能出现一种结果,那么它的 Entropy 就是 0 。它没有不确定性,带来的信息( information) 最少;
2) 如果一组事件中,会有相同概率出现不同的两种结果,那么它的 Entropy 就是 1. 它有不确定性,带来的信息比第一种情况多。
3) 假如一组事件中,会有 a, b, c, d 四种同概率的结果,那么它的 Entropy 就是 2. 它带来的信息更多,不确定性更大

所以 Entropy 是用来衡量不确定性有多大的一种属性,它的刻度可以有 shannon, nat, or hartley. 三种刻度各自对应了对数底数。信息论中以 shannon 为单位刻度,所以底数就是 2 , 单位为 bit.

1 个 bit 可以带来 2 个结果,0, 1,那么这个 Entropy 就是 1. 2 个 bit 带来 4 个结果,00,01,10,11. 所以 Entropy 是 2. 以此类推,得到一个公式:

H(S)=p(xi)log2p(xi)

由此证明,如果 Entropy 越大,说明信息越多,那么不确定就越强,在做 Decision Tree 的时候,就是要让 Entropy 慢慢变小。

你可能感兴趣的:(tree,机器学习)