0
点赞
收藏
分享

微信扫一扫

整合信息论 python示范代码

在信息论中,我们经常会遇到一些基本概念,如联合熵、条件熵、交叉熵和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来计算两个概率分布MN之间的交叉熵。这是一个非常基础的信息论概念,用于衡量两个概率分布之间的相似性。

此外,还有一些其他的信息论概念,如标准化互信息,也可以用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)

在这个例子中,我们计算了两个列表AB之间的标准化互信息。这是一个衡量两个随机变量之间相互依赖程度的指标。

希望这些示例能帮助你理解和应用信息论的一些基本概念。如果你有任何其他问题,或者需要更多的示例,欢迎随时向我提问。¹³。源: 与必应的对话, 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.

举报

相关推荐

0 条评论