在信息论中,我们经常会遇到一些基本概念,如联合熵、条件熵、交叉熵和KL散度等。以下是一些Python代码示例,用于计算这些概念¹。
# -*-coding:utf-8-*-
# Author: WSKH
import numpy as np
# 计算交叉熵
def cross(M,N):
return -np.sum(M*np.log(N)+(1-M)*np.log(1-N))
M = np.asarray([0.8,0.3,0.12,0.04],dtype=float)
N = np.asarray([0.7,0.28,0.08,0.06],dtype=float)
print("M,N的交叉熵为",cross(M,N))
在这个例子中,我们定义了一个函数cross
来计算两个概率分布M
和N
之间的交叉熵。这是一个非常基础的信息论概念,用于衡量两个概率分布之间的相似性。
此外,还有一些其他的信息论概念,如标准化互信息,也可以用Python实现³。例如,使用sklearn.metrics.normalized_mutual_info_score
函数可以计算两个列表的标准化互信息。
from sklearn import metrics
A = [1, 1, 1, 2, 3, 3]
B = [1, 2, 3, 1, 2, 3]
result_NMI = metrics.normalized_mutual_info_score(A, B)
print("result_NMI:", result_NMI)
在这个例子中,我们计算了两个列表A
和B
之间的标准化互信息。这是一个衡量两个随机变量之间相互依赖程度的指标。
希望这些示例能帮助你理解和应用信息论的一些基本概念。如果你有任何其他问题,或者需要更多的示例,欢迎随时向我提问。¹³。源: 与必应的对话, 2023/12/25
(1) 【机器学习】信息论基础(联合熵、条件熵、交叉熵、KL散度等)+ Python代码实现 - CSDN博客. https://blog.csdn.net/weixin_51545953/article/details/122917445.
(2) 信息论学习——python实现标准化互信息-CSDN博客. https://blog.csdn.net/m0_37876745/article/details/112061449.
(3) 涌现、因果与自指——“因果涌现”理论能否破解生命与意识之谜 - 知乎. https://zhuanlan.zhihu.com/p/410039656.
(4) 精选了20个Python实战项目(附源码),拿走就用! - 知乎. https://zhuanlan.zhihu.com/p/448252423.
(5) undefined. https://www.art-sciencefactory.com/complexity-map_feb09.html.
标签:交叉,python,互信息,示范,Python,https,np,信息论 From: https://blog.51cto.com/u_16055028/8967982