【发布时间】:2021-08-30 08:37:36
【问题描述】:
我想计算两个以上列表的 Jaccard 指数,我在这里找到了一个解决方案:Similarity of list elements 但它没有考虑在我的情况下重要的元素顺序(索引)。 我运行这段代码:
Selected_Features = [
[1, 1, 1, 1, 0, 1],
[1, 1, 0, 1, 0, 1],
[1, 1, 0, 1, 0, 1],
[1, 1, 0, 1, 0, 1],]
from datasketch import MinHash
from datasketch import *
import itertools
minhash_data = list()
for element in Selected_Features:
m = MinHash()
for d in element:
m.update(str(d).encode("utf-8"))
minhash_data.append(m)
jaccard_sims = list()
for pair in itertools.combinations(minhash_data, 2):
jaccard_sims.append(pair[0].jaccard(pair[1]))
average = sum(jaccard_sims) / float(len(jaccard_sims))
print("Average Jaccard similarity: {}".format(average))
然后输出: 平均 Jaccard 相似度:1.0 这不是!!
【问题讨论】:
标签: python machine-learning similarity