机器学习数学基础之 杰卡德(Jaccard)距离、余弦距离
杰卡德距离(Jaccard Distance):
杰卡德相似系数(Jaccard similarity coefficient):两个集合A和B的交集元素在A,B的并集中所占的比例,称为两个集合的杰卡德相似系数,用符号J(A,B)表示:
\(J\left ( A,B\right ) = \frac{\left | A\cap B\right |}{\left | A\cup B\right |}\)
杰卡德距离(Jaccard Distance): 与杰卡德相似系数相反,用两个集合中不同元素占所有元素的比例来衡量两个集合的区分度:
\(J_{\delta }\left ( A,B\right ) = 1-J\left ( A,B\right )=\frac{\left | A\cup B\right |-\left | A\cap B\right |}{\left | A\cup B\right |}\)
- Matlab计算杰卡德距离:(Matlab中将杰卡德距离定义为不同的维度的个数占“非全零维度”的比例)
余弦距离(Cosine Distance):
几何中,夹角余弦可用来衡量两个向量方向的差异;机器学习中,借用这一概念来衡量样本向量之间的差异。
二维空间中向量 a(x1,x2),b(y1,y2) 的夹角余弦公式:
\(cos\theta = \frac{x_{1}y_{1}+ x_{2}y_{2}}{\sqrt{x_{1}^{2}+x_{2}^{2}}\sqrt{y_{1}^{2}+y_{2}^{2}}}\)
两个n维样本点 a(x1,x2,......,xn),b(y1,y2,......yn)的夹角余弦为:
\(cos\theta = \frac{\vec{a}\cdot \vec{b}}{\left | a\right |\left | b\right |}\)
即:
\(cos\theta = \frac{\sum_{i=1}^{n}x_{i}y_{i}}{\sqrt{\sum_{i=1}^{n}x_{i}^{2}}\sqrt{\sum_{i=1}^{n}y_{i}^{2}}}\)
夹角余弦取值范围为[-1,1]。余弦越大表示两个向量的夹角越小,余弦越小表示两向量的夹角越大。当两个向量的方向重合时余弦取最大值1,当两个向量的方向完全相反余弦取最小值-1。
Matlab计算夹角余弦(Matlab中的pdist(X, ‘cosine’)得到的是1减夹角余弦的值):
学习博客:here