Python计算信息熵
生活随笔
收集整理的這篇文章主要介紹了
Python计算信息熵
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
?計算信息熵的公式:n是類別數,p(xi)是第i類的概率
假設數據集有m行,即m個樣本,每一行最后一列為該樣本的標簽,計算數據集信息熵的代碼如下:
from math import logdef calcShannonEnt(dataSet):numEntries = len(dataSet) # 樣本數labelCounts = {} # 該數據集每個類別的頻數for featVec in dataSet: # 對每一行樣本currentLabel = featVec[-1] # 該樣本的標簽if currentLabel not in labelCounts.keys(): labelCounts[currentLabel] = 0labelCounts[currentLabel] += 1 shannonEnt = 0.0for key in labelCounts:prob = float(labelCounts[key])/numEntries # 計算p(xi)shannonEnt -= prob * log(prob, 2) # log base 2return shannonEnt?
總結
以上是生活随笔為你收集整理的Python计算信息熵的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Halcon算子学习:xyz_to_ob
- 下一篇: c++二维数组指针详解