计算香农熵练习

阅读 81

2022-05-09


读取play.csv文件中的内容,并计算数据集play.csv(未考虑任何特征前)的熵值。

注:1、即使用熵值的公式

2、在play.csv文件中outlook(天气),TEMPERATURE(温度)、HUMIDITY(湿度)、

WINDY(风)代表四个特征。

最后一类代表类别,即是否出去打球

from math import log
def calcShannonEnt(dataSet):
numEntries=len(dataSet)
labelCounts={}
for featVec in dataSet:
currentLabel=featVec[-1]
if currentLabel not in labelCounts.keys():
labelCounts[currentLabel]=0
labelCounts[currentLabel]+=1
shannonEnt=0.0
for key in labelCounts:
prob=float(labelCounts[key])/numEntries
shannonEnt-=prob*log(prob,2)
return shannonEnt

print(calcShannonEnt('play.csv'))

计算香农熵练习_机器学习



精彩评论(0)

0 0 举报