我正在设计匹配系统,并希望计算数字对之间的相似性。所以我们假设我们有两组数字:
15 13 17 100
1 14 15 105 27 30
我现在想要计算它们之间的相似性 a)这两组数字和 b)每个数字之间(例如sim(15,1),sim(13,1)等) 返回0和1之间的相似值。
现在我的问题是文献中是否存在针对此任务的相似性度量。如果甚至有一个java实现,我会更加欣赏这一点。
更新:
存在大量用于字符串相似性的度量(例如Levenshtein度量),但我找不到与数字等价的东西。
目标是在匹配系统中使用它,该系统应返回0和1之间两个数据库行的相似性。
提前谢谢!
答案 0 :(得分:1)
正如你所指出的,坏消息是它必须适用于任意数字集。好消息是你有一个来自数字集的样本。
您需要考虑整列中数字的范围和分布。
假设行A在特定列中的值为1,而行B的值为3.请考虑两种不同的情况:
在数据库的上下文中,您可能有关于数据库设计的其他信息,这些信息应该通知您的行相似性度量。即使没有这个,您也可以查看数字列中的数字分布,并询问“这个列中两个独立行的概率是多少?”。
我通过搜索bayesian pairwise similarity
在这个一般区域找到了一些论文。特别是,虽然对于不同的域Measuring similarity between gene expression profiles: a Bayesian approach,但可能包含一些相关的想法。