距離公式


距離本意就是兩個目標的某一特征集從一個變成另一個需要的最小操作。廣泛使用於相似度比較領域。機器學習中經常用的距離有:

1. 歐氏距離 ( Euclidean Distances)

2. 曼哈頓距離

3. 切比雪夫距離

4. 閔可夫斯基距離

5. 標准化歐氏距離

6. 馬氏距離

7. 夾角余弦( Cosine Distance)

8. 漢明距離(Hamming Distance)

9. 傑卡德距離 & 傑卡德相似系數(Jaccard)

10. 相關系數 & 相關距離(pearson,Spearman, kendall tau correlation)

11. 信息熵(Kullback-Leibler Divergence / Relative Entropy)

部分可參考:http://www.cnblogs.com/heaad/archive/2011/03/08/1977733.html

1. Jaccard 

  • Jaccard相似度有狹義和廣義之分。

  • 狹義:兩個集合的交集數目除上兩個集合的並集數目,即:

  • 廣義:元素的取值可以是實數。又稱為Tanimoto系數,用EJ來表示,計算方式如下:

    EJ(A,B)=(A*B)/(||A||^2+||B||^2-A*B)

    其中A、B分別表示為兩個向量,集合中每個元素表示為向量中的一個維度,在每個維度上,取值通常是[0, 1]之間的值,A*B表示向量乘積,||A||^2表示向量的模,即 ||A||^2 = sqrt (a1^2 + a2^2 + a3^2 + ......)。
    廣義Jaccard相似度計算公式中,如果把分母的A*B去掉,並將||A||^2+||B||^2替換為(||A||^2)*(||B||^2),就轉成了余弦相似度(cosine similarity)。

    可參考:http://blog.csdn.net/xceman1997/article/details/8600277

  • Jacard 距離: d(x,y)= 1 - J(x,y).

2. Euclidean Distances

歐氏距離,即通常說的L2-范式(L2-norm)

3. Cosine Distance

先求余弦相似性,對於兩個向量A和B,定義如下:

然后通過反余弦函數,求得的夾角θ,就是余弦距離。

4. Hamming Distance

漢明距更多的用於信號處理,表明一個信號變成另一個信號需要的最小操作(替換位),實際中就是比較兩個比特串有多少個位不一樣,簡潔的操作時就是兩個比特串進行異或之后包含1的個數。漢明距在圖像處理領域也有這廣泛的應用,是比較二進制圖像非常有效的手段。計算一個數字的比特位包含1的個數有個小技巧:value  &= value - 1這個運算的結果就是把value最后一個1去掉,循環進行運算直到value等於0(所有的1都被去掉)就可以知道vaule擁有多少個1了。

參考:http://zh.wikipedia.org/wiki/%E6%B1%89%E6%98%8E%E8%B7%9D%E7%A6%BB


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM