如何测量MATLAB中数据矩阵的成对余弦



假设有一个数据矩阵(MATLAB(

X = [0.8147, 0.9134, 0.2785, 0.9649, 0.9572;
     0.9058, 0.6324, 0.5469, 0.1576, 0.4854;
     0.1270, 0.0975, 0.9575, 0.9706, 0.8003]

每列代表样本的特征向量。MATLABX中获得成对助攻相似性度量的最快方法是什么?例如,我们要计算对称S5X5矩阵,S(3,4)中的元素是第三列和第四列之间的插图。

注释:助理测量cos(a,b)是指向量ab之间的角度。

如果您具有统计工具箱,请与'cosine'选项一起使用pdist,然后使用squareform。请注意:

  • pdist考虑,而不是列,作为观察。因此您需要转换输入。
  • 输出为1减去余弦相似性。因此,您需要从1。
  • 中减去结果
  • 要以对称矩阵的形式获得结果,请应用squareform

所以,您可以使用

S = 1 - squareform(pdist(X.', 'cosine'));

最新更新