在右侧编辑器补充代码,完成calcInfoEntropy函数实现计算信息熵、
时间: 2024-10-12 18:04:52 浏览: 29
MATLAB实现信息熵
在Python中,我们可以使用概率论的知识来实现信息熵的计算。信息熵通常用于衡量随机变量不确定性的度量。对于给定的一组离散概率分布,信息熵`H(X)`可以用下面的公式表示:
\[ H(X) = -\sum_{i=1}^{n} p(x_i) \log_2(p(x_i)) \]
其中,\( p(x_i) \) 是第 \( i \) 个事件的概率,\( n \) 是所有事件的数量,而对数通常是以2为底的。
这里是一个简单的`calcInfoEntropy`函数实现示例:
```python
import math
def calcInfoEntropy(probabilities):
if not probabilities or sum(probabilities) != 1.0:
raise ValueError("Probabilities must be a valid distribution (non-negative and sum to 1)")
entropy = 0.0
for prob in probabilities:
if prob > 0:
entropy += prob * math.log2(prob)
return -entropy # 返回负熵,因为原始公式中有个负号
# 示例用法
prob_dist = [0.5, 0.3, 0.2]
entropy_value = calcInfoEntropy(prob_dist)
print(f"Information Entropy: {entropy_value}")
```
在这个函数中,我们首先检查输入的概率是否构成有效的分布。然后,遍历每个概率值,计算它们的对数,并乘以相应的概率,最后将结果相加并取负值得到最终的熵。
阅读全文