如何在 MATLAB 中测量数据矩阵的成对余弦
How to measure the pairwise cosine for a data matrix in 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]
每列代表样本的一个特征向量。
在 MATLAB
中获得 X
中的成对余弦相似性度量的最快方法是什么?比如我们要计算对称S
是5X5
矩阵,S(3,4)
中的元素是第三列和第四列之间的余弦。
注意:余弦测量值cos(a,b)
表示向量a
与b
之间的夹角。
如果您有统计工具箱,请使用 pdist
with the 'cosine'
option, followed by squareform
。注意:
pdist
将 行 而不是列视为观察值。所以你需要转置输入。
- 输出是1减去余弦相似度。所以你需要用1减去结果。
- 要获得对称矩阵形式的结果,请应用
squareform
。
所以,您可以使用
S = 1 - squareform(pdist(X.', 'cosine'));
假设有一个数据矩阵(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]
每列代表样本的一个特征向量。
在 MATLAB
中获得 X
中的成对余弦相似性度量的最快方法是什么?比如我们要计算对称S
是5X5
矩阵,S(3,4)
中的元素是第三列和第四列之间的余弦。
注意:余弦测量值cos(a,b)
表示向量a
与b
之间的夹角。
如果您有统计工具箱,请使用 pdist
with the 'cosine'
option, followed by squareform
。注意:
pdist
将 行 而不是列视为观察值。所以你需要转置输入。- 输出是1减去余弦相似度。所以你需要用1减去结果。
- 要获得对称矩阵形式的结果,请应用
squareform
。
所以,您可以使用
S = 1 - squareform(pdist(X.', 'cosine'));