您的位置:首页 > 编程语言 > Python开发

Shannon 信息熵:python_code

2017-11-01 09:34 309 查看

信息熵

代码来源于《机器学习》

from math import log
import numpy as np
def calcShannonEnt(dataset):
numEntries =len(dataset)
labelCounts = {}
for favocter in dataset:
setkeys = favocter[-1]
# print(setkeys)
if setkeys not in labelCounts.keys():
labelCounts[setkeys] = 0
labelCounts[setkeys] +=1
# print(labelCounts)
shnnoy = 0.0
for key in labelCounts.keys():
prop = float(labelCounts[key])/numEntries
shnnoy -=prop * log(prop,2)
return  (shnnoy)

if __name__== '__main__':
df=np.array([[1,1],[1,1],[1,2],[1,2],[1,1]])
shon = calcShannonEnt(df)
print(shon)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: