- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
function [ d ] = hcompare_KL( h1,h2 )
%This routine evaluates the Kullback-Leibler (KL) distance between histograms.
% Input: h1, h2 - histograms
% Output: d – the distance between the histograms.
% Method: KL is defined as:
% Note, KL is not symmetric, so compute both sides.
% Take care not to divide by zero or log zero: disregard entries of the sum for which with H2(i) == 0.
temp = sum(h1 .* log(h1 ./ h2));
temp( isinf(temp) ) = 0; % this resloves where h1(i) == 0
d1 = sum(temp);
temp = sum(h2 .* log(h2 ./ h1)); % other direction of compare since it's not symetric
temp( isinf(temp) ) = 0;
d2 = sum(temp);
d = d1 + d2;
end
我的问题是,每当 h1(i) 或 h2(i) == 0 时,我都会得到符合预期的 inf。然而,在 KL 距离中,我假设只要它们 h1 或 h2 ==0 就返回 0 我怎么能在不使用循环的情况下做到这一点?
最佳答案
为了避免在任何计数为 0 时出现问题,我建议您创建一个索引来标记“好”数据点:
%# you may want to do some input testing, such as whether h1 and h2 are
%# of the same size
%# preassign the output
d = zeros(size(h1));
%# create an index of the "good" data points
goodIdx = h1>0 & h2>0; %# bin counts <0 are not good, either
d1 = sum(h1(goodIdx) .* log(h1(goodIdx) . /h2(goodIdx)));
d2 = sum(h2(goodIdx) .* log(h2(goodIdx) . /h1(goodIdx)));
%# overwrite d only where we have actual data
%# the rest remains zero
d(goodIdx) = d1 + d2;
关于matlab - 直方图之间的 Kullback-Leibler (KL) 距离 - matlab,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13370229/
我有两个包含 40000 个样本的数据集。我想用 python 计算这两个数据集之间的 Kullback-Leibler 散度。在 python 中有什么有效的方法吗? 最佳答案 编辑: 好的。我发现
我编写了一个函数来计算从 N(mu2, sigma2) 到 N(0, 1) 的 Kullback-Leibler 散度。 mu1 f(5, 1) [1] 12.5 我确信这个结果是正确的,因为我手边
我想使用 Jensen-Shannon 散度作为直方图距离函数。我正在实现一个简单的图像相似性搜索,直方图是归一化的 RGB 颜色分布。 我对 Kullback-Leibler 散度公式(JS 的依据
我做了一个java实现Kullback-leibler散度的方法。我使用了以 2 为基数的日志,但我不确定我是否正确使用了它,或者我应该使用以 10 为基数的日志值。我正在使用这种方法来测量两个文本单
我已经关注论文here和代码 here (它是使用对称 kld 和论文中第一个链接中提出的退避模型实现的)用于计算两个文本数据集之间的 KLD。我在最后更改了 for 循环以返回两个数据集的概率分布,
我知道 KL 不是一个指标,也不能被视为一个指标。但是,是否可以使用 KL 来衡量一幅图像与另一幅图像的差异?我试图从中得出一种直觉。提前感谢所有回复。 最佳答案 KL 测量两个概率分布之间的差异。
我正在处理属于 2 个组(A 和 B)的数据。我试图找到显示两个群体之间最大差异的变量,我认为 Kullback-Leibler 距离将是一个很好的衡量标准。这是代表我的数据的示例 df1 <- st
我在java中有这个方法来计算概率分布的KL: public static double klDivergence(double[] p1, double[] p2) { double klDi
我有以下问题:我有一个矩阵,比如 20K 离散分布(直方图),我需要计算这些对之间的 KL 散度 (KLD)。简单的方法是使用两个 for 循环并通过标准 KLD 计算计算每两个分布之间的 KLD。这
在从 mallet 中的各种文档中获得各种概率分布后,我应用以下代码来计算第一个和第二个文档之间的 KL 散度: Maths.klDivergence(double[] d1,doub
我需要最小化 KL loss在 tensorflow . 我试过这个功能 tf.contrib.distributions.kl(dist_a, dist_b, allow_nan=False, na
我有两个(不同长度的)数字列表。使用 Python,我想用 10 个 bin 来计算直方图。然后我想用标准核(均值为 0 的高斯核,sigma=1)平滑这两个直方图然后我想计算这两个平滑直方图之间的
function [ d ] = hcompare_KL( h1,h2 ) %This routine evaluates the Kullback-Leibler (KL) distance bet
我必须计算 Kullback-Leibler Divergence (KLD) 在数千个离散概率向量之间。目前我正在使用以下代码,但它对我的目的来说太慢了。我想知道是否有更快的方法来计算 KL 散度?
我有两个名为 x_t、x_k 的张量,分别具有以下形状 NxHxW 和 KxNxHxW,其中 K,是用于重建x_t的自动编码器的数量(如果您不知道这是什么,假设它们是K个不同的网络,旨在预测x_t,这
我有两个矩阵 X 和 Y(在大多数情况下它们是相似的)现在我想计算所有行之间的成对 KL 散度并将它们输出到一个矩阵中。例如: X = [[0.1, 0.9], [0.8, 0.2]] 然后该函数应采
我的目标是计算以下文本文档之间的 KL 距离: 1)The boy is having a lad relationship 2)The boy is having a boy relationshi
我是一名优秀的程序员,十分优秀!