首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >Matlab上的Jaccard索引产生错误结果

Matlab上的Jaccard索引产生错误结果
EN

Stack Overflow用户
提问于 2014-11-07 10:59:26
回答 1查看 478关注 0票数 1

我有下面的矩阵

代码语言:javascript
复制
a =

     0    10    10     0     0
     0     5     5     0     0
     1     0     0    50    51
     0     0    10   100   100

我计算Jaccard距离

代码语言:javascript
复制
D = pdist(a,'jaccard');
D =

1.0000    1.0000    0.7500    1.0000    1.0000    1.0000

最后,我把距离放在一个矩阵中

代码语言:javascript
复制
sim = squareform(D)

sim =

代码语言:javascript
复制
     0    1.0000    1.0000    0.7500
1.0000         0    1.0000    1.0000
1.0000    1.0000         0    1.0000
0.7500    1.0000    1.0000         0

jaccard指数被计算为“1减去Jaccard系数,这是不同的非零坐标的百分比”(http://www.mathworks.it/help/stats/pdist.html)。

第1行到第4行之间的距离是正确的(0.75),而第1行和第2行之间的距离应该是0,而不是1。当jaccard相似度为1时,matlab似乎不执行1-相似计算。我做错了什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-11-07 11:20:24

MATLAB对我来说是对的。

第1行和第2行中的所有非零数都不同(在第1行它们都是10,在第2行它们都是5),所以第1行和第2行的距离应该是1。

第1行和第4行中的4个非零数字中有3个不同(10:0、10:10、0:100、0:100),因此第1行和第4行的距离应为0.75。

对于Jaccard的“系数”、Jaccard的“指数”、Jaccard的“相似性”和Jaccard的“距离”,似乎存在很多分歧,而后者是减去另一个的。在你引用的句子中,MATLAB的文档没有帮助,因为它并不明显,无论“哪”指(MATLAB描述的) Jaccard系数,还是减去Jaccard系数的1。

在任何情况下,无论MATLAB文档使用的术语是否正确,函数pdist似乎都给出了一致的结果,如果您想要不同的东西,您总是可以取一减去它的输出。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26799758

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档