一圖看遍9種距離度量,圖文並茂,詳述應用場景!

點擊上方AI算法與圖像處理”,選擇加"星標"或“置頂

重磅乾貨,第一時間送達


距離度量在CV 、NLP以及數據分析等領域都有衆多的應用。最常見的距離度量有歐式距離和餘弦距離,本文將會分享九種距離,分析其優缺點以及相應的應用常見,如果對你有所幫助,在看完之後,可以分享給你朋友圈的好兄弟,好姐妹們,共同成長進步!


有圖有真相


許多算法,無論是監督或非監督,都使用距離度量。這些度量,如歐幾里得距離或餘弦相似度,經常可以在k-NN、UMAP、HDBSCAN等算法中找到。

理解距離度量比你可能比你想象中更加重要。以k-NN爲例,這是一種經常用於監督學習的技術。作爲默認值,它通常使用歐幾里得距離。它本身就是一個很大的距離。

但是,如果你的數據是高維的呢?那麼歐幾里得距離還有效嗎?或者,如果的數據包含地理空間信息呢?也許 haversine 距離是更好的選擇!

知道何時使用哪種距離度量可以幫助您從一個糟糕的分類器變成一個精確的模型。

在本文中,我們將介紹許多距離度量方法,並探討如何以及何時最好地使用它們。最重要的是,我將討論它們的缺點,以便您能夠意識到何時應該避開某些措施。

注意:對於大多數距離度量,很長的詳細的文件可以並且已經寫在它們的用例、優點和缺點上。我會盡我所能去彌補,但可能會達不到!因此,本文是這些措施的總體概述。

1、Euclidean Distance


我們從最常見的距離度量開始,即歐幾里得距離。它是一種距離度量,最好解釋爲連接兩點的線段的長度。

這個公式相當簡單,因爲距離是從這些點的笛卡爾座標用勾股定理計算出來的。

缺點

儘管歐幾里德距離是一種常見的距離度量,但它不是尺度不變的,這意味着計算的距離可能是傾斜的,這取決於特徵的單位。通常,在使用這個距離度量之前,需要對數據進行標準化(normalize)

此外,隨着數據維度的增加,歐幾里得距離就變得不那麼有用了。這與維數的"詛咒"有關,它與高維空間並不像我們直觀地期望的那樣,在2維或3維空間中發揮作用的概念有關。想要一個好的總結,請看這篇文章。

https://stats.stackexchange.com/questions/99171/why-is-euclidean-distance-not-a-good-metric-in-high-dimensions

用例

歐幾里得距離適用於低維數據,矢量的大小很重要,需要測量。如果在低維數據上使用歐幾里得距離,像kNN和HDBSCAN這樣的方法會顯示出很好的開箱即用結果。

儘管許多其他的測量方法已經被開發出來,用於解決歐幾里得距離的缺點,它仍然是最常用的距離方法之一,且有充分的理由。它使用起來非常直觀,實現起來非常簡單,並且在許多用例中都顯示了很好的效果。

2、Cosine Similarity

餘弦相似度常用來抵消高維歐幾里得距離問題。餘弦相似度就是兩個向量夾角的餘弦。如果它們的長度都是1,它也有相同的內積。

兩個方向完全相同的向量的餘弦相似性爲1,而兩個完全相反的向量的相似性爲-1。注意,它們的大小並不重要,因爲這是方向的量度。

缺點

餘弦相似度的一個主要缺點是沒有考慮向量的大小,而只考慮它們的方向。在實踐中,這意味着沒有充分考慮值(value)的差異。以一個推薦系統爲例,餘弦相似度沒有考慮到不同用戶之間評分尺度的差異。

用例

當我們有高維數據和向量的大小不重要時,我們經常使用餘弦相似度。對於文本分析,當數據以單詞計數表示時,經常使用此度量。例如,當一個單詞在一個文檔中出現的頻率高於另一個文檔時,這並不一定意味着一個文檔與這個單詞的相關性更高。可能出現的情況是,文檔的長度不均勻,計數的大小不那麼重要。然後,我們最好使用不考慮大小的餘弦相似度

3、Hamming Distance

漢明距離是兩個向量之間不同值的個數。它通常用於比較兩個相同長度的二進制字符串。它還可以用於字符串,通過計算不同字符的數量來比較它們之間的相似程度。

缺點

如你所料,當兩個向量的長度不相等時,很難使用漢明距離。爲了瞭解哪些位置不匹配,您可能希望比較相同長度的向量。

此外,只要它們不同或相等,它就不考慮實際值。因此,當大小是一個重要的度量時,不建議使用這個距離度量。

用例

典型的用例包括數據通過計算機網絡傳輸時的錯誤糾正/檢測。它可以用來確定二進制字中distorted bit的數目,作爲估計誤差的一種方法。

此外,還可以使用漢明距離來度量分類變量之間的距離

4、Manhattan Distance

曼哈頓距離,通常稱爲出租車距離或城市街區距離( Taxicab distance or City Block distance),計算實值向量之間的距離。想象描述均勻網格(如棋盤)上物體的向量。曼哈頓距離是指兩個矢量之間的距離,如果它們只能移動直角。在計算距離時不涉及對角線移動。

缺點

儘管曼哈頓距離在高維數據中似乎可以工作,但它比歐幾里得距離更不直觀,尤其是在高維數據中使用時。

此外,由於它不是可能的最短路徑,它比歐幾里得距離更有可能給出一個更高的距離值。這並不一定會帶來問題,但這是你應該考慮的。

用例

當數據集具有離散和/或二進制屬性時,Manhattan似乎工作得很好,因爲它考慮了在這些屬性的值中實際可以採用的路徑。以歐幾里得距離爲例,它會在兩個向量之間形成一條直線,但實際上這是不可能的。

5、Chebyshev Distance

切比雪夫距離定義爲兩個向量在任意座標維度上的最大差值。換句話說,它就是沿着一個軸的最大距離。由於其本質,它通常被稱爲棋盤距離,因爲國王從一個方格到另一個方格的最小步數等於切比雪夫距離。

缺點

切比雪夫通常用於非常特定的用例,這使得它很難用作通用的距離度量,如歐氏距離或餘弦相似度。因此,建議只在絕對確定它適合你的用例時才使用它。

用例

如前所述,切比雪夫距離可用於提取行走從一個方塊到另一個方塊所需的最小步數。此外,在允許無限制的8向移動的遊戲中,這也是一種有用的措施。

在實踐中,切比雪夫距離經常用於倉庫物流,因爲它非常類似於起重機移動一個物體的時間。

6、Minkowski

閔可夫斯基距離比大多數測量都要複雜一些。它是一個在賦範向量空間(n維實空間)中使用的度量,這意味着它可以在一個空間中使用,在這個空間中,距離可以表示爲一個有長度的向量。

該措施有三個要求:

  • 0向量 —— 0向量的長度是0,而其他向量的長度都是正的。例如,如果我們從一個地方旅行到另一個地方,那麼這個距離總是正的。然而,如果我們從一個地方到它自己,那麼這個距離是零。

  • 標量因子——當你用一個正數乘以向量時,它的長度會改變,同時保持方向不變。例如,如果我們在一個方向上移動一段距離,然後加上相同的距離,這個方向不會改變。

  • 三角形不等式——兩點之間最短的距離是一條直線。

閔可夫斯基距離公式如下:

關於這個距離度量最有趣的是參數p的使用。我們可以使用這個參數來操縱距離度量,使其與其他度量非常相似。

常見的p值有:

  • p=1 — Manhattan distance

  • p=2 — Euclidean distance

  • p= — Chebyshev distance

缺點

閔可夫斯基與它們所代表的距離度量具有相同的缺點,因此,良好地理解曼哈頓距離、歐幾里得距離和切比雪夫距離等度量標準是非常重要的。

此外,使用參數p實際上可能很麻煩,因爲根據你的用例,查找正確的值在計算上可能非常低效。

用例

p的好處是可以迭代它,並找到最適合用例的距離度量。它允許你在距離度量上有很大的靈活性,如果你非常熟悉p和許多距離度量,這將是一個巨大的好處。




7、Jaccard Index

Jaccard索引(或聯合上的交集)是一個用於計算樣本集的相似性和多樣性的度量。它是交集的大小除以樣本集的並集的大小。

實際上,它是集合之間相似實體的總數除以實體的總數。例如,如果兩個集合有一個共同的實體,而總共有5個不同的實體,那麼Jaccard索引將是1/5 = 0.2。

爲了計算Jaccard距離,我們只需從1中減去Jaccard索引:

缺點

Jaccard索引的一個主要缺點是它受數據大小的影響很大。大型數據集可能對索引有很大的影響,因爲它可以顯著增加並集,同時保持交集相似。

用例

Jaccard索引經常用於使用二進制或二進制化數據的應用程序中。當你有一個深度學習模型來預測一幅圖像(例如一輛汽車)的片段時,Jaccard索引就可以用來計算給出真實標籤的預測片段的準確性。

同樣,它也可以用於文本相似度分析,以衡量文檔之間的選詞重疊程度。因此,它可以用來比較模式集。

8、Haversine

哈弗辛距離是球面上的兩點在給定經緯度條件下的距離。它與歐幾里得距離非常相似,因爲它計算兩點之間最短的直線。主要的區別是不可能是直線,因爲這裏的假設是兩點在球面上。


缺點

這種距離測量的一個缺點是假定這些點在球面上。在實踐中,這種情況很少發生,例如,地球不是完全圓的,這在某些情況下會使計算變得困難。相反,觀察文森特距離(Vincenty distance)會很有趣,因爲文森特距離是以橢球爲前提的。

用例

正如您可能已經預料到的,Haversine距離經常用於導航。例如,你可以用它來計算兩個國家之間飛行的距離。請注意,如果距離本身已經不那麼大,那麼它就不太合適了。曲率不會有那麼大的影響。

9、Sørensen-Dice Index


Sørensen-Dice指數與Jaccard指數非常相似,它衡量的是樣本集的相似性和多樣性。雖然它們的計算方法類似,但Sørensen-Dice索引更直觀一些,因爲它可以被視爲兩個集合之間重疊的百分比,這個值在0到1之間:

缺點

就像Jaccard指數一樣,它們都誇大了很少或沒有ground truth的集合的重要性。因此,它可以主宰多盤比賽的平均分。它將每一項的權重與相關集合的大小成反比,而不是同等對待它們。

用例

用例與Jaccard index相似(如果不相同的話)。你會發現它通常用於圖像分割任務或文本相似度分析。

注意:距離測量比這裏提到的9個要多得多。如果您正在尋找更有趣的指標,我建議您查看以下指標之一:Mahalanobis、Canberra、Braycurtis和KL-divergence。


如果對你有幫助,請給我來三連!

    
         
         
         
       
            
            
            


   
      
      
      
個人微信(如果沒有備註不拉羣!
請註明: 地區+學校/企業+研究方向+暱稱



下載1:何愷明頂會分享


AI算法與圖像處理」公衆號後臺回覆:何愷明,即可下載。總共有6份PDF,涉及 ResNet、Mask RCNN等經典工作的總結分析


下載2:終身受益的編程指南:Google編程風格指南


AI算法與圖像處理」公衆號後臺回覆:c++,即可下載。歷經十年考驗,最權威的編程規範!



 
    
    
    
下載3 CVPR2020

AI算法與圖像處公衆號後臺回覆: CVPR2020 即可下載1467篇CVPR 2020論文


覺得不錯就點亮在看吧


本文分享自微信公衆號 - AI算法與圖像處理(AI_study)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章