Entropy

如何计算熵

  • 两种特殊情况
    最好的情况: 样本都是同类, 则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

发表评论

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据