機器學習中常見的9種距離度量方法,內含歐氏距離、切比雪夫距離等

↑↑↑點擊上方藍字,回覆資料,10個G的驚喜

選自 | towardsdatascience  作者 | Maarten Grootendorst  報道 | 機器之心   編輯 | 陳萍
在數據挖掘中,我們經常需要計算樣本之間的相似度,通常的做法是計算樣本之間的距離。在本文中,數據科學家 Maarten Grootendorst 向我們介紹了 9 種距離度量方法,其中包括歐氏距離、餘弦相似度等。

許多算法,無論是監督學習還是無監督學習,都會使用距離度量。這些度量,如歐幾里得距離或者餘弦相似性,經常在 k-NN、 UMAP、HDBSCAN 等算法中使用。瞭解距離度量這個領域可能比你想的更重要,以 k-NN 爲例,它常被用於監督學習中。

但是,如果你的數據是高維的,歐幾里德距離還能用嗎?又或者如果你的數據是由地理空間信息組成的,也許半正矢距離是很好的選擇。

我們究竟如何選擇最適合的距離度量?數據科學家 Maarten Grootendorst 向讀者介紹了 9 種距離度量方法,並探討如何以及何時以最佳的方式使用它們。此外 Maarten Grootendorst 還對它們的缺點進行了介紹,以及如何規避不足。

歐氏距離(Euclidean Distance)

歐式距離。

我們從最常見的歐式距離開始,歐式距離可解釋爲連接兩個點的線段的長度。歐式距離公式非常簡單,使用勾股定理從這些點的笛卡爾座標計算距離。


缺點:儘管這是一種常用的距離度量,但歐式距離並不是尺度不變的,這意味着所計算的距離可能會根據特徵的單位發生傾斜。通常,在使用歐式距離度量之前,需要對數據進行歸一化處理。

此外,隨着數據維數的增加,歐氏距離的作用也就越小。這與維數災難(curse of dimensionality)有關。

用例:當你擁有低維數據且向量的大小非常重要時,歐式距離的效果非常好。如果在低維數據上使用歐式距離,則如 k-NN 和 HDBSCAN 之類的方法可達到開箱即用的效果。

餘弦相似度(Cosine Similarity)

餘弦相似度。

餘弦相似度經常被用作抵消高維歐式距離問題。餘弦相似度是指兩個向量夾角的餘弦。如果將向量歸一化爲長度均爲 1 的向量,則向量的點積也相同。

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


缺點:餘弦相似度的一個主要缺點是沒有考慮向量的大小,而只考慮它們的方向。以推薦系統爲例,餘弦相似度就沒有考慮到不同用戶之間評分尺度的差異。

用例:當我們對高維數據向量的大小不關注時,可以使用餘弦相似度。對於文本分析,當數據以單詞計數表示時,經常使用此度量。例如,當一個單詞在一個文檔中比另一個單詞更頻繁出現時,這並不一定意味着文檔與該單詞更相關。可能是文件長度不均勻或者計數的重要性不太重要。我們最好使用忽略幅度的餘弦相似度。

漢明距離(Hamming Distance)

漢明距離。

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

缺點:當兩個向量長度不相等時,漢明距離使用起來很麻煩。當幅度是重要指標時,建議不要使用此距離指標。

用例:典型的用例包括數據通過計算機網絡傳輸時的錯誤糾正 / 檢測。它可以用來確定二進制字中失真的數目,作爲估計誤差的一種方法。此外,你還可以使用漢明距離來度量分類變量之間的距離。

曼哈頓距離(Manhattan Distance)

曼哈頓距離。

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


缺點:儘管曼哈頓距離在高維數據中似乎可以工作,但它比歐式距離直觀性差,尤其是在高維數據中使用時。此外,由於它可能不是最短路徑,有可能比歐氏距離給出一個更高的距離值。

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

切比雪夫距離(Chebyshev Distance)

切比雪夫距離。

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


缺點:切比雪夫距離通常用於特定的用例,這使得它很難像歐氏距離或餘弦相似度那樣作爲通用的距離度量。因此,在確定適合用例時才使用它。

用例:切比雪夫距離用於提取從一個方塊移動到另一個方塊所需的最小移動次數。此外,在允許無限制八向移動的遊戲中,這可能是有用的方法。在實踐中,切比雪夫距離經常用於倉庫物流,因爲它非常類似於起重機移動一個物體的時間。

閔氏距離(Minkowski)

閔氏距離。

閔氏距離比大多數距離度量更復雜。它是在範數向量空間(n 維實數空間)中使用的度量,這意味着它可以在一個空間中使用,在這個空間中,距離可以用一個有長度的向量來表示。

閔氏距離公式如下:


最有趣的一點是,我們可以使用參數 p 來操縱距離度量,使其與其他度量非常相似。常見的 p 值有:

  • p=1:曼哈頓距離

  • p=2:歐氏距離

  • p=∞:切比雪夫距離


缺點:閔氏距離與它們所代表的距離度量有相同的缺點,因此,對哈頓距離、歐幾里得距離和切比雪夫距離等度量標準有個好的理解非常重要。此外,參數 p 的使用可能很麻煩,因爲根據用例,查找正確的 p 值在計算上效率低。

用例:p 的積極一面是可迭代,並找到最適合用例的距離度量。它允許在距離度量上有很大的靈活性,如果你非常熟悉 p 和許多距離度量,將會獲益多多。

雅卡爾指數(Jaccard Index)

雅卡爾指數。

雅卡爾指數(交併比)是用於比較樣本集相似性與多樣性的統計量。雅卡爾係數能夠量度有限樣本集合的相似度,其定義爲兩個集合交集大小與並集大小之間的比例。

例如,如果兩個集合有 1 個共同的實體,而有 5 個不同的實體,那麼雅卡爾指數爲 1/5 = 0.2。要計算雅卡爾距離,我們只需從 1 中減去雅卡爾指數:


缺點:雅卡爾指數的一個主要缺點是它受數據大小的影響很大。大數據集對指數有很大影響,因爲它可以顯著增加並集,同時保持交集相似。

用例:雅卡爾指數通常用於使用二進制或二進制數據的應用程序中。當你有一個深度學習模型來預測圖像分割時,比如一輛汽車,雅卡爾指數可以用來計算給定真實標籤的預測分割的準確度。

類似地,它可以用於文本相似性分析,以測量文檔之間有多少詞語重疊。因此,它可以用來比較模式集合。

半正矢(Haversine)

半正矢距離。

半正矢距離是指球面上的兩點在給定經緯度條件下的距離。它與歐幾里得距離非常相似,因爲它可以計算兩點之間的最短連線。主要區別在於半正矢距離不可能有直線,因爲這裏的假設是兩個點都在一個球面上。


缺點:這種距離測量的一個缺點是,假定這些點位於一個球體上。實際上,這種情況很少出現,例如,地球不是完美的圓形,在某些情況下可能使計算變得困難。相反,如果假定是橢球,使用 Vincenty 距離比較好。

用例:半正矢距離通常用於導航。例如,你可以使用它來計算兩個國家之間的飛行距離。請注意,如果距離本身不那麼大,則不太適合。

Sørensen-Dice 係數

Sørensen-Dice 係數。

 Sørensen-Dice 係數與雅卡爾指數非常相似,都是度量樣本集的相似性和多樣性。儘管它們的計算方法相似,但是 Sørensen-Dice 係數更直觀一些,因爲它可以被視爲兩個集合之間重疊的百分比,這個值在 0 到 1 之間:


缺點:正如雅卡爾指數,Sørensen-Dice 係數也誇大了很少或沒有真值的集合的重要性,因此,它可以控制多集合的平均得分,還可以控制多組平均得分並按相關集合的大小成反比地加權每個項目,而不是平等對待它們。

用例:用例與雅卡爾指數相似,它通常用於圖像分割任務或文本相似性分析。

原文鏈接:https://towardsdatascience.com/9-distance-measures-in-data-science-918109d069fa

   
   
   
 
    
    
    
也可以加一下老胡的微信
圍觀朋友圈~~~


推薦閱讀

(點擊標題可跳轉閱讀)

機器學習中令你事半功倍的pipeline處理機制

機器學習避坑指南:訓練集/測試集分佈一致性檢查

機器學習深度研究:特徵選擇中幾個重要的統計學概念

老鐵,三連支持一下,好嗎?↓↓↓


本文分享自微信公衆號 - 機器學習算法與Python實戰(tjxj666)。
如有侵權,請聯繫 [email protected] 刪除。
本文參與“OSC源創計劃”,歡迎正在閱讀的你也加入,一起分享。

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