gpt4 book ai didi

python - 具有高维属性的数组的相似度得分

转载 作者:行者123 更新时间:2023-11-30 09:35:27 25 4
gpt4 key购买 nike

大家好[第一次发帖,请保持温柔:)]

我正在尝试计算许多数组(数千个)之间的相似度分数,以便我可以创建相似数组的二维图(类似于 tSNE)。

数组如下:每个数组都有许多与其关联的唯一整数(每个对象可能有 40-200 个整数):

arr1 = [1513, 2354, 1929483, 323423...]

arr2 = [4546, 847, 993847, 8457...]

...

arrN = [236, 395828, 434535, 4369...]

每个唯一整数的范围为 ~1-30,000,000。我想将每个数组与所有其他数组进行比较,以确定它们有多少个共同整数。这应该是相似性得分的基础,我想比较将产生相似性得分的 N x N 矩阵,尽管我很想听听如何将 N x N 矩阵降低到更低的维度。

感谢您的帮助,我真的不知道从哪里开始!

最佳答案

如果内存不是问题,我会将所有数组转换为集合,然后比较它们的哈希值,例如:

arr1 = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101]
arr2 = [47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97, 101, 103, 107, 109, 113, 127, 131, 137, 139, 149]

arr1_arr2_same = set(arr1) & set(arr2)

print("arr1 vs arr2, same elements: {}\n\tTotal: {}".format(arr1_arr2_same, len(arr1_arr2_same)))

# prints:
# arr1 vs arr2, same elements: set([97, 67, 101, 71, 73, 79, 59, 83, 53, 89, 47, 61])
# Total: 12

您可以循环遍历数组,收集这些集合并将它们(或它们的总数)存储在所需的矩阵中。不过,不确定您到底想用它们做什么。

关于python - 具有高维属性的数组的相似度得分,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44087635/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com