9

像这样的向量

v1 = {0 0 0 1 1 0 0 1 0 1 1}
v2 = {0 1 1 1 1 1 0 1 0 1 0}
v3 = {0 0 0 0 0 0 0 0 0 0 1}

需要计算它们之间的相似度。v1和之间的汉明距离v2是 4 和之间v1的距离v3也是 4。但是因为我对组合在一起的“1”组感兴趣,所以与当时的情况v2更相似。v1v3

是否有任何距离指标可以在数据中捕捉到这一点?

这些数据及时代表了房屋的入住率,这就是为什么它对我很重要。“1”表示占用,“0”表示未占用。

4

5 回答 5

8

听起来您需要余弦相似度度量:

similarity = cos(v1, v2) = v1 * v2 / (|v1| |v2|)

v1 * v2之间的点积在哪里:v1v2

v1 * v2 = v1[1]*v2[1] + v1[2]*v2[2] + ... + v1[n]*v2[n]

本质上,点积显示两个向量中有多少元素在同一位置具有 1:如果v1[k] == 1v2[k] == 1,则最终总和(因此相似性)增加,否则不会改变。

您可以使用点积本身,但有时您希望将最终相似度归一化,例如介于 0 和 1 之间。在这种情况下,您可以将v1和的点积除以v2它们的长度 -|v1||v2|。本质上,向量长度是向量与自身的点积的平方根:

|v| = sqrt(v[1]*v[1] + v[2]*v[2] + ... + v[n]*v[n])

有了所有这些,就很容易实现余弦距离,如下所示(Python 中的示例):

from math import sqrt

def dot(v1, v2):
    return sum(x*y for x, y in zip(v1, v2))

def length(v):
    return sqrt(dot(v, v))

def sim(v1, v2): 
    return dot(v1, v2) / (length(v1) * length(v2))

请注意,我描述的是相似性(两个向量彼此接近多少),而不是距离(它们有多远)。如果您需要精确的距离,您可以将其计算为dist = 1 / sim

于 2013-05-11T12:34:46.957 回答
4

实际上有数百个距离函数,包括集合的距离度量,例如 Dice 和 Jaccard。

您可能想要获得“距离函数字典”一书,它非常好。

于 2013-05-12T13:25:53.503 回答
1

案例1:如果系列中的位置相关,那么:

我推荐动态时间扭曲距离(DTW)。在时间序列数据的应用中,它已被证明非常有用。

为了检查它是否可以应用于您的问题,我使用了此处提供的代码:https ://jeremykun.com/2012/07/25/dynamic-time-warping/

d13 = dynamicTimeWarp(v1,v3)
d12 = dynamicTimeWarp(v1,v2)
d23 = dynamicTimeWarp(v2,v3)

d23,d12,d13
(3, 1, 3)

如您所见,d12 最低,因此 v1 和 v2 最相似。DTW 的更多信息可以在这个论坛的任何地方找到,对于研究论文,我推荐Eamonn Keogh的任何东西。

案例 2:一个的位置不相关:

我只是同意 Deepu 将平均值作为一个特征。

于 2016-07-25T13:03:14.333 回答
0

我认为您可以简单地取每组中的值的平均值。例如v1这里的平均值为0.4545,平均值v20.6363,平均值v30.0909。如果集合中唯一可能的值是 0 和 1,那么具有相等或几乎相等值的集合将满足您的目的。

于 2013-05-11T11:41:38.460 回答
-1

有一个网站介绍了各种类型的向量相似度方法

http://dataaspirant.com/2015/04/11/five-most-popular-similarity-measures-implementation-in-python/

我认为这将帮助您决定应该使用什么相似性

.

.

简单解释一下上面的链接,向量之间有五种流行的相似度度量

  1. 欧几里得距离 - 只是向量之间的绝对距离

  2. 余弦 - 向量之间的余弦度(θ)差

  3. 曼哈顿——它们的笛卡尔坐标的绝对差之和,例如,

在 p1 在 (x1, y1) 和 p2 在 (x2, y2) 的平面上。曼哈顿距离 = |x1 – x2| + |y1 – y2|

  1. Minkowski - 欧几里得距离和曼哈顿距离的广义度量形式

  2. Jaccard - 对象之间的相似性。因此,将一组中的每个特征与另一组进行比较并找出其差异

.

使用上面的关键字,您可以谷歌以获得进一步的解释。希望对你有帮助

于 2018-04-17T06:34:37.410 回答