1. 程式人生 > 其它 >機器學習數學基礎之 傑卡德(Jaccard)距離、餘弦距離

機器學習數學基礎之 傑卡德(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