n个二进制向量的距离度量

时间:2018-04-03 10:30:16

标签: 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更相似的向量。

我应该使用哪个指标?我想到了Jaccard的相似性。但我无法将其置于这种背景下。我是否应该找到每个矢量的距离以找到总距离或其他东西?

1 个答案:

答案 0 :(得分:0)

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

相似度量

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

你的距离函数可以继续使用,你应该找到一个对你的数据有意义的函数。

评分机制

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

您正在寻找的内容很可能是您的成员之间距离的平均值。那么,根据天气你希望你的平均值对异常值是否敏感,你可以得到距离的平均值或平均距离的平均值。

如果你想深入挖掘,你也可以得到两组中距离的均值和方差,并比较分布。