是否有一种指标可以根据两个对象的属性来评估它们之间的相似性?
Is there a metric to evaluate similarity between two objects, based on their attributes?
假设我有一个对象 X
具有一组 10 个特征:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
.
那么,我还有两个对象:
A : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
B : [0, 0, 0, 0, 0, 0, 0, 0, 0, 20]
我需要知道 A
或 B
中的哪个是 "closer" 到 X
。
我在"similarity"背后的想法是:
It is better that all features are nearly the same, rather than many are very close but some very different.
根据这个 "definition",A
似乎比 B
更接近 X
。
但是,算术平均值似乎不是实现这个想法的正确工具,因为它对于两个对象都是 2。
请问是否有针对此类问题的特定指标?
在您的例子中,A 和 X 之间的欧几里德距离是 40 的平方根(大约 = 6.32),B 和 X 之间的距离是 20,因此 A 确实更相似。
在特征非常不相似且可能变化不同的情况下,欧氏距离必须归一化。
这可以使用涉及特征方差的 Mahalanobis distance 来完成。
另请参阅 this question。
您也可以考虑使用余弦相似度。余弦相似度衡量向量相对于原点的相似度,而欧氏距离衡量向量上特定兴趣点之间的距离。
Here 是一篇关于何时选择一个而不是另一个的好文章。
另一个常见的衡量标准是 Jaccard 相似度。 Here 是一篇比较余弦与 Jaccard 相似度的文章。
假设我有一个对象 X
具有一组 10 个特征:[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
.
那么,我还有两个对象:
A : [2, 2, 2, 2, 2, 2, 2, 2, 2, 2]
B : [0, 0, 0, 0, 0, 0, 0, 0, 0, 20]
我需要知道 A
或 B
中的哪个是 "closer" 到 X
。
我在"similarity"背后的想法是:
It is better that all features are nearly the same, rather than many are very close but some very different.
根据这个 "definition",A
似乎比 B
更接近 X
。
但是,算术平均值似乎不是实现这个想法的正确工具,因为它对于两个对象都是 2。
请问是否有针对此类问题的特定指标?
在您的例子中,A 和 X 之间的欧几里德距离是 40 的平方根(大约 = 6.32),B 和 X 之间的距离是 20,因此 A 确实更相似。
在特征非常不相似且可能变化不同的情况下,欧氏距离必须归一化。
这可以使用涉及特征方差的 Mahalanobis distance 来完成。
另请参阅 this question。
您也可以考虑使用余弦相似度。余弦相似度衡量向量相对于原点的相似度,而欧氏距离衡量向量上特定兴趣点之间的距离。
Here 是一篇关于何时选择一个而不是另一个的好文章。
另一个常见的衡量标准是 Jaccard 相似度。 Here 是一篇比较余弦与 Jaccard 相似度的文章。