【问题标题】:How to calculate the Jaccard index for multiple lists in python where the order is important如何计算python中多个列表的Jaccard索引,其中顺序很重要
【发布时间】: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


    【解决方案1】:

    给定两组整数 s1,s2 和 s3,现在用于查找 jaccard 索引 intersect = s1 & s2 & s3 &... size = len(intersect) index = size/(len(s1)+ len(s2) +len(s3 - size)

    【讨论】:

    • 能否请您提供一个使用python代码的清晰示例
    • 我已经尝试过这个解决方案,但它引发了一个错误,虽然我认为它没有考虑索引顺序
    猜你喜欢
    • 2016-11-03
    • 2011-01-18
    • 1970-01-01
    • 2016-06-19
    • 2018-07-06
    • 2021-11-10
    • 2017-01-17
    • 1970-01-01
    • 2011-01-12
    相关资源
    最近更新 更多