使⽤python对信息熵进⾏计算
在机器学习中的决策树类算法中主要依靠信息熵的⼤⼩来选择重要的特征属性作为节点换分数据集从⽽获得训练结果 谁是人类的祖先#-*-coding:utf-8-*-
from math import log
import operator
def calcShanonEnt(dataSet):
'''
计算给定数据集的⾹农熵
九把刀北大演讲:param dataSet:
:return:shanonEnt
'''
名人电子词典numEntries = len(dataSet)
labelCounts={}
for featVec in dataSet:
currentLabel = featVec[-1]
if currentLabel not in labelCounts.keys():
余姚labelCounts[currentLabel]=0
labelCounts[currentLabel] +=1
shanonEnt = 0.0
for key in labelCounts:
prob= float(labelCounts[key])/numEntries
shanonEnt -= prob*log(prob,2)
越南国民党
文章与人品return shanonEnt
作者:WangB