【问题标题】:Distance metric for n binary vectorsn 个二元向量的距离度量
【发布时间】:2018-04-03 10:30:16
【问题描述】:

我分别有来自集合 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,这意味着Set B比Set A有更多相似的向量。

我应该使用哪个指标?我想到了 Jaccard 相似性。但我不能把它放在这种情况下。我应该找到每个向量之间的距离以找到总距离还是其他什么?

【问题讨论】:

  • 这太抽象了,取决于你想要的功能。如果您想要严格衡量相似性,一种方法可能是找出所有 m 个向量之间共有的值的数量。
  • 您是否考虑过每对向量之间的聚合/平均Hamming distance?或成对的 Jaccard 相似性。或者您可以将向量作为坐标,计算质心并采用欧几里得距离。最佳选择取决于您对哪种相似性感兴趣。

标签: python machine-learning similarity cosine-similarity


【解决方案1】:

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

相似度测量

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

你的距离函数可以做很多事情,你应该找到一个对你的数据有意义的函数。

评分机制

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

您要查找的很可能是您的集合成员之间的平均距离。然后,根据您希望平均值对异常值敏感与否的天气,您可以选择距离的平均值或平方距离的平均值。

如果想深入挖掘,还可以得到两个集合内距离的均值和方差,比较分布。

【讨论】:

    猜你喜欢
    • 2016-09-27
    • 1970-01-01
    • 2020-03-16
    • 2014-11-12
    • 1970-01-01
    • 2020-09-03
    • 2017-04-03
    • 2019-05-29
    • 2013-10-03
    相关资源
    最近更新 更多