列向量互信息计算
来源:互联网 发布:用友t3数据库在哪 编辑:程序博客网 时间:2024/05/08 21:57
1. 概述
首先信息熵的计算公式如下
其中I(X)表示X的信息量
注:这里对数所使用的底,通常是 2, 自然常数e,或是10。当b = 2,熵的单位是bit;当b = e,熵的单位是nat;而当 b = 10,熵的单位是dit。
p(xi)是xi发生的概率英文里面叫做probability mass function,一个随机产生的事件所包含的信息本体数量,只与事件发生的机率相关。事件发生的机率越低,在事件真的发生时,接收到的信息中,包含的信息本体越大。含义是概率为 0 的事件对应的信息大, 反之信息量少,取对数的原因是使得乘积变为求和。信息熵即为信息量的数学期望。
则X,Y的联合信息量可以表示为
平均互信息为互信息的数学期望
则公式可以推出
2. 编码
%计算两列向量之间的互信息%u1:输入计算的向量1%u2:输入计算的向量2%wind_size:向量的维度function mi = calc_mi(u1, u2, wind_size)x = [u1, u2];n = wind_size;[xrow, xcol] = size(x);bin = zeros(xrow,xcol);pmf = zeros(n, 2);for i = 1:2 minx = min(x(:,i)); maxx = max(x(:,i)); binwidth = (maxx - minx) / n; edges = minx + binwidth*(0:n); histcEdges = [-Inf edges(2:end-1) Inf]; [occur,bin(:,i)] = histc(x(:,i),histcEdges,1); %通过直方图方式计算单个向量的直方图分布 pmf(:,i) = occur(1:n)./xrow;end%计算u1和u2的联合概率密度jointOccur = accumarray(bin,1,[n,n]); %(xi,yi)两个数据同时落入n*n等分方格中的数量即为联合概率密度jointPmf = jointOccur./xrow;Hx = -(pmf(:,1))'*log2(pmf(:,1)+eps);Hy = -(pmf(:,2))'*log2(pmf(:,2)+eps);Hxy = -(jointPmf(:))'*log2(jointPmf(:)+eps);MI = Hx+Hy-Hxy;mi = MI/sqrt(Hx*Hy);
阅读全文
0 0
- 列向量互信息计算
- 独立向量信号互信息计算——Matlab实现
- MATLAB计算图像互信息值
- opencv计算图像互信息熵
- opencv计算图像互信息熵
- 互信息
- 互信息
- 互信息
- 互信息
- 图像相似性度量——互信息计算Matlab实现
- 标准化互信息NMI计算步骤及其Python实现
- sklearn:点互信息和互信息
- 向量计算
- 互信息 Mutual Information
- 最大互信息准则
- 互信息(R)
- 互信息 Mutual Information
- 互信息概念
- Git如何删除远程服务器文件同时保留本地文件
- 剑指offer算法编程题目部分汇总(解法略)
- c程序的输入和输出
- 1-网络协议基础
- 实习网申小技巧
- 列向量互信息计算
- Android Studio gradle配置详解
- 用户接口
- 【开发手札】关于开发的一些个人心得见解
- 剑指offer面试题43:n个筛子的点数
- 开闭运算操作的简单应用
- 练习朗诵
- JSONModel 1.4版本以上需要注意
- 数字图像处理实验(总计23个)汇总