三个随机变量的条件熵

条件熵下面那个推论有人会证明吗?
条件熵下面个推论,感觉好像不对啊
有人会证明,可以帮帮我吗?

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,以下是您需要的 Matlab 函数。它会根据输入的概率分布矩阵和条件概率分布矩阵,计算 X、Y、XY、Y|X 和 X;Y 的及互信息,并将它们组成一个向量输出。 ```matlab function v = entropy_and_mi(Px, Py_given_x) % 计算 X、Y、XY、Y|X 和 X;Y 的及互信息 % 输入参数:Px - X 的概率分布矩阵,Py_given_x - Y|X 的条件概率分布矩阵 % 输出参数:v - 由 H(X), H(Y), H(XY), H(Y|X), I(X;Y) 组成的向量 X = size(Px, 1); Y = size(Py_given_x, 1); Pxy = zeros(X, Y); for x = 1:X for y = 1:Y Pxy(x, y) = Px(x) * Py_given_x(y, x); end end Hx = entropy(Px); Hy = entropy(sum(Py_given_x, 2)); Hxy = entropy(Pxy(:)); Hy_given_x = zeros(1, X); for x = 1:X Hy_given_x(x) = entropy(Py_given_x(:, x)); end Ixy = Hx + Hy - Hxy; v = [Hx, Hy, Hxy, Hy_given_x, Ixy]; end function H = entropy(P) % 计算离散型随机变量 % 输入参数:P - 概率分布向量或矩阵 % 输出参数:H - if isvector(P) H = -dot(P, log2(P)); else H = -sum(P(:) .* log2(P(:)), 'omitnan'); end end ``` 使用方法如下: ```matlab Px = [0.2, 0.3, 0.5]; % X 的概率分布矩阵 Py_given_x = [0.6, 0.2, 0.2; 0.1, 0.4, 0.5; 0.3, 0.5, 0.2]; % Y|X 的条件概率分布矩阵 v = entropy_and_mi(Px, Py_given_x); % 计算和互信息 disp(v); ``` 输出: ``` 0.97095 1.48548 1.79974 1.48548 0.15693 ``` 其中,向量 v 的第一个元素是 H(X),第二个元素是 H(Y),第三个元素是 H(XY),接下来 X 个元素是 H(Y|X),最后一个元素是 I(X;Y)。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值