我想在Matlab的knnsearch中使用相关距离。我想知道为什么要使用相关性,“相关性-减去观测值之间的样本线性相关性(视为值序列)”。用来。使用knnsearch我想找到k个最近的邻居。但是,不是完美的相关性(这意味着最接近的匹配)不是相关性而是1相关性吗?
将相关性用作“距离”没有多大意义。由于两个矢量x1
和x2
,如果x1
等于x2
你所期望的距离是0
。但是,向量与自身的相关性(系数)为1
。如果您进行计算1 - correlation
,则可以得到0
相等的向量。
通常,向量越“近”(距离越小),它们之间的相关性就越强(相关性越高)。因此,1 - correlation
将其作为相似度的度量是有意义的。
但是请注意,尽管1 - correlation
它是相似性的量度,但实际上并不是距离,因为它不满足三角形不等式。作为反例,请考虑以下向量:
x1 = [1 9 8 5];
x2 = [0 7 6 9];
x3 = [9 3 2 6];
然后
>> pdist([x1; x2], 'correlation') + pdist([x2; x3], 'correlation')
ans =
1.919533190739275
>> pdist([x1; x3], 'correlation')
ans =
1.967870959140932
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句