机器学习如何度量相似性 Cosine
夹角余弦(Cosine)? ?几何中夹角余弦可用来衡量两个向量方向的差异,机器学习中借用这一概念来衡量样本向量之间的差异。(1)在二维空间中向量A(x1,y1)与向量B(x2,y2)的夹角余弦公式:
(2) 两个n维样本点a(x11,x12,…,x1n)和b(x21,x22,x2n)的夹角余弦。类似的,对于两个n维样本点a(x11,x2n),可以使用类似于夹角余弦的概念来衡量它们间的相似程度。
即:
?????? 夹角余弦取值范围为[-1,1]。夹角余弦越大表示两个向量的夹角越小,夹角余弦越小表示两向量的夹角越大。当两个向量的方向重合时夹角余弦取最大值1,当两个向量的方向完全相反夹角余弦取最小值-1。 ?????? 夹角余弦的具体应用可以参阅参考文献[吴军. 数学之美 系列 12 - 余弦定理和新闻的分类.]。 (3)Matlab计算夹角余弦 例子:计算(1,0)、( 1,1.732)、( -1,0)两两间的夹角余弦 X = [1 0 ; 1 1.732 ; -1 0] D = 1- pdist(X,'cosine')? % Matlab中的pdist(X,'cosine')得到的是1减夹角余弦的值 结果: D = ??? 0.5000?? -1.0000?? -0.5000 pdist的函数的详解,见博客点击打开链接 ? ? ? ? ? ? ? ? ? ? ?? ? ? ? ? ? ? ? ? ?这里我们还要用到一个函数?squareform,把行向量,变为举证D,其中D(i,j) ?D(j,i)代表 i 和j 的相似度/距离。 上源码? clear >> X = [1 0 ; 1 1.732 ; -1 0] X = 1.0000 0 1.0000 1.7320 -1.0000 0 >> D = 1- pdist(X,'cosine') D = 0.5000 -1.0000 -0.5000 >> squareform(D) ans = 0 0.5000 -1.0000 0.5000 0 -0.5000 -1.0000 -0.5000 0 参考文章:点击打开链接? ? ?? (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |