我有一个10000大小的graph degree listdegrees
(例如:[1,14,4,14,6,1…]。我试着用这种方法计算这个列表的熵:
首先,我要找出列表中每个唯一值的概率:
uniqueDegreeList = list(set(degrees))
a = 0
for i in uniqueDegreeList:
p = degrees.count(i) / len(degrees)
print(p)
a += p
输出:
0.5054494550544946
0.24577542245775422
0.12188781121887811
0.06379362063793621
0.031596840315968405
0.0150984901509849
0.007799220077992201
0.0034996500349965005
0.0024997500249975004
0.0010998900109989002
0.0008999100089991
0.00039996000399960006
0.00019998000199980003
以及:
print(a)
>> 1.0
这部分工作正常。然后我试图找到列表的熵:
S = 0
for i in uniqueDegreeList:
p = degrees.count(i) / len(degrees)
S -= p * math.log(p, 2)
当我打印S
时,我得到1.99
。熵不应该大于1,为什么我得到1.99?你知道吗
目前没有回答
相关问题 更多 >
编程相关推荐