如何计算熵
 
- 两种特殊情况
 最好的情况: 样本都是同类, 则Entropy值为0
 最差的情况: 样本均匀分布在所有类中, 则Entropy值为1
- 现有数据集
| Grade | Bumpiness | Speed_Limit? | Speed | 
|---|---|---|---|
| steep | bumpy | yes | slow | 
| steep | smooth | yes | slow | 
| flat | bumpy | no | fast | 
| steep | smooth | no | fast | 
在这个数据集中, 什么因素可以决定当前应该加速还是减速.
- Speed部分统计
 s->代表slow
 f->代表fast
 则数据集缩写为: [ssff]
 则slow的概率为: 
 则fast的概率为: 
- 计算Speed节点的熵
➜ test ✗ cat entropy.py
import math
# 计算熵值
def entropy(input_list):
    result = 0
    for i in input_list:
        result -= i * math.log(i, 2)
    return(result)
# main run part
if __name__ == '__main__':
    # 这里为[P(slow), P(fast)]
    plist = [0.5, 0.5]
    # 输出计算结果
    print(entropy(plist))
- 执行输出
➜ test ✗ python3 entropy.py
1.0
Be First to Comment