#coding=gbk
import nltk
import math
def entropy(labels):
    freqdist = nltk.FreqDist(labels)  #Frequency Distributions
    probs = [freqdist.freq(l) for l in freqdist] #freqdist.freq(l)  是将频率转换成概率。即频率除以总个数等于概率
    return -sum([p * math.log(p,2) for p in probs])

print entropy(["u","m","m","u"]) #结果为1
print entropy(["m","m","m","m"])  #结果为-0.0

 

 

 

 

 

 

 

 

 

 

 

相关文章:

  • 2022-12-23
  • 2021-05-27
  • 2022-12-23
  • 2021-05-19
  • 2021-08-05
  • 2021-07-27
  • 2022-01-29
  • 2021-11-27
猜你喜欢
  • 2021-06-19
  • 2022-12-23
  • 2022-12-26
  • 2021-11-27
  • 2021-05-24
  • 2022-01-13
  • 2021-09-13
相关资源
相似解决方案