python - n 个二元向量的距离度量

标签 python machine-learning similarity cosine-similarity

我分别有来自集合 A 和 B 的 n 和 m 个二进制向量(长度为 1500)。 我需要一个度量来说明所有 n 个向量和 m 个向量的相似程度(距离度量的一种)。 输出应为total_distance_of_n_vectors 和total_distance_of_m_vectors。 如果total_distance_of_n_vectors>total_distance_of_m_vectors,则意味着集合B比集合A有更多的相似向量。

我应该使用哪个指标?我想到了杰卡德的相似性。但我无法将其放在这种情况下。我应该找到每个向量彼此之间的距离来找到总距离还是其他东西?

最佳答案

有两个与您的问题相关的概念,您应该分别考虑。

相似性度量:

无论您的评分机制如何,您都应该找到最适合您的数据的相似性度量。它可以是欧几里得距离(不适合 1500 维空间)、余弦距离(基于点积)或哈密顿距离(假设您的输入特征完全独立,但这种情况很少见)。

距离函数可以进行很多操作,您应该找到一个对您的数据有意义的函数。

评分机制:

您在问题中提到了total_distance_of_vectors,这可能不是您想要的。如果n >> m,几乎可以肯定,n 个向量的距离总和大于 m 个向量的总距离。

您正在寻找的很可能是集合中成员之间距离的平均值。然后,根据您希望平均值对异常值是否敏感的天气,您可以采用距离平均值或平方距离平均值。

如果您想更深入地挖掘,您还可以获取两组内距离的均值和方差并比较分布。

关于python - n 个二元向量的距离度量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49627823/

相关文章:

python - 无法在pydev中为django项目编写代码

python - 如何加快Flask响应下载速度

python - 如何对 Pandas 中的两个领域进行分组?

validation - 有没有什么算法可以检查数据中是否存在簇?

hadoop - 在200列1200万行数据集上执行相似功能时应使用什么?

python - 如何使用 while 循环 PySimpleGUI 中的键获取日历按钮的值?

python - Keras:使用灰度蒙版和 ImageDataGenerator 类进行图像分割

python - 构建用于牛眼皮疹识别的卷积神经网络

python - 将列表中相似的字符串分组在一起

java - 项目之间的 CPD/PMD?