
Python中计算信息熵的示例
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
本文章提供了一个使用Python编程语言来实现和计算信息熵的具体实例。通过简单的代码展示如何在数据科学分析中运用这一概念。
计算信息熵的公式:n是类别数,p(xi)是第i类的概率。假设数据集有m行,即包含m个样本,每一行的最后一列代表该样本的标签。以下是用于计算数据集信息熵的代码:
```python
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) # 计算公式中的-log(p)
return shannonEnt # 返回信息熵值
```
全部评论 (0)


