KL散度( Kullback–Leibler divergence),又称相对熵,是描述两个概率分布 P 和 Q 差异的一种方法。根据计算公式:
from math import log
x = [1, 1, 1, 2, 3, 4, 1, 2, 3, 4, 1, 3, 4, 1, 2, 3, 3, 1, 2, 3, 1, 2, 3, 1, 3, 1]
y = [2, 2, 2, 2, 3, 4, 4, 2, 2, 1, 2, 4, 3, 2, 2, 1, 3, 4, 4, 2, 4, 3]
k_x = set(x)
p = []
for i in k_x:
p.append(x.count(i) / len(x))
k_y = set(y)
q = []
for i in k_y:
q.append(y.count(i) / len(y))
KL = 0.0
for i in range(len(k_x)):
KL += p[i] * log(p[i] / q[i], 2)
print(round(KL, 2))
希望大家看到上面这个简单的例子,都已经知道了如果计算 KL散度。
文章如有问题,请联系笔者随时更正,大家一同进步,谢谢支持!