演算法金 | 歐氏距離演算法、餘弦相似度、漢明、曼哈頓、切比雪夫、閔可夫斯基、雅卡爾指數、半正矢、Sørensen-Dice

算法金「全网同名」發表於2024-07-02


大俠幸會,在下全網同名「演算法金」 0 基礎轉 AI 上岸,多個演算法賽 Top 「日更萬日,讓更多人享受智慧樂趣」

在演算法模型構建中,我們經常需要計算樣本之間的相似度,通常的做法是計算樣本之間的距離。 今天,一鍵拿下九種距離演算法。走你~

一、歐氏距離 (Euclidean Distance)

定義與公式

歐氏距離是兩個點在 n 維空間中直線距離的度量。它是最常見的距離度量方法之一,用於計算兩個向量之間的距離。歐氏距離的公式如下:

應用場景

歐氏距離廣泛應用於許多領域,如機器學習、統計學、模式識別和資料探勘。常見的應用場景包括:

  • 分類演算法:如 k 近鄰 (k-Nearest Neighbors, KNN) 演算法,透過計算新樣本與訓練樣本之間的歐氏距離來進行分類
  • 聚類分析:如 k 均值 (k-Means) 聚類演算法,透過計算樣本與聚類中心之間的歐氏距離來確定樣本所屬的簇
  • 影像處理:用於度量影像之間的相似度,如影像檢索和影像匹配

優缺點分析

優點:

  • 計算簡單:歐氏距離的計算公式簡單易懂,且計算量較小,適用於大多數應用場景
  • 直觀性強:歐氏距離直接反映了兩個點之間的幾何距離,具有很強的直觀性

缺點:

  • 對尺度敏感:不同維度的數值尺度差異會影響距離的計算結果,需要對資料進行標準化或歸一化處理
  • 對異常值敏感:歐氏距離對資料中的異常值非常敏感,異常值可能會顯著影響計算結果

歐氏距離(Euclidean Distance)

二、餘弦相似度 (Cosine Similarity)

定義與公式

餘弦相似度是一種衡量兩個向量夾角餘弦值的度量,常用於評估兩個向量的相似度。公式如下:

應用場景

餘弦相似度在許多領域有廣泛應用,特別是文字和資訊檢索領域:

  • 文字相似度計算:在自然語言處理 (NLP) 中,餘弦相似度用於計算兩個文字或文件之間的相似度,透過比較它們的詞頻向量
  • 推薦系統:如使用者-物品推薦系統,透過計算使用者之間或物品之間的相似度來進行推薦
  • 影像相似度計算:在計算機視覺中,用於比較影像特徵向量的相似度

優缺點分析

優點:

  • 不受向量長度影響:餘弦相似度僅關注向量的方向,而不受向量的長度影響,適用於不同規模的資料
  • 計算簡單:公式簡單,計算效率高,適合大規模資料處理

缺點:

  • 無法反映數值大小的差異:餘弦相似度僅考慮向量的方向,不考慮數值的大小,可能會忽略重要的數值資訊
  • 對稀疏向量效果較差:對於稀疏向量(如文字資料中的詞頻向量),計算結果可能不準確,需要結合其他方法使用

餘弦相似度(Cosine Similarity)

防失聯,進免費知識星球,直達演算法金 AI 實驗室 https://t.zsxq.com/ckSu3

更多內容,見免費知識星球

三、漢明距離 (Hamming Distance)

定義與公式

漢明距離用於衡量兩個等長字串之間的不同字元個數。公式如下:

應用場景

漢明距離主要用於以下場景:

  • 錯誤檢測和糾正:在通訊和儲存系統中,用於檢測和糾正資料傳輸和儲存中的錯誤,如漢明碼
  • 基因序列分析:在生物資訊學中,用於比較 DNA 和 RNA 序列之間的差異
  • 密碼學:在密碼分析中,用於比較不同密文之間的差異

優缺點分析

優點:

  • 計算簡單:漢明距離的計算過程非常簡單,適合大規模資料處理
  • 適用於離散資料:漢明距離特別適用於比較離散資料,如字串和二進位制資料

缺點:

  • 僅適用於等長字串:漢明距離只能比較長度相同的字串,對於長度不同的字串無法計算
  • 不考慮字元位置的重要性:漢明距離只關注字元是否相同,不考慮字元在字串中的位置重要性

漢明距離(Hamming Distance)

四、曼哈頓距離 (Manhattan Distance)

定義與公式

曼哈頓距離,又稱為城市街區距離,是指兩個點在 n 維空間中各個座標軸上的距離之和。公式如下:

應用場景

曼哈頓距離在以下領域有廣泛應用:

  • 資料探勘和機器學習:如在 k 近鄰 (KNN) 演算法中,用於計算樣本之間的距離
  • 影像處理:用於影像畫素之間的距離計算,如影像匹配和分割
  • 機器人路徑規劃:在路徑規劃中,用於計算機器人在網格地圖中的移動距離

優缺點分析

優點:

  • 計算簡單:曼哈頓距離的計算公式簡單,計算量較小,適用於大多數應用場景
  • 適用於高維資料:在高維空間中,曼哈頓距離比歐氏距離更穩定,不易受到個別維度異常值的影響

缺點:

  • 不適用於所有場景:曼哈頓距離在某些場景中可能不如歐氏距離直觀,如需要考慮斜向移動的場景
  • 對尺度敏感:不同維度的數值尺度差異會影響距離的計算結果,需要對資料進行標準化或歸一化處理

曼哈頓距離(Manhattan Distance)

防失聯,進免費知識星球,直達演算法金 AI 實驗室 https://t.zsxq.com/ckSu3

免費知識星球,歡迎加入交流

五、切比雪夫距離 (Chebyshev Distance)

定義與公式

切比雪夫距離,又稱為棋盤距離,是指兩個點在 n 維空間中各個座標軸上的最大距離。公式如下:

應用場景

切比雪夫距離在以下領域有應用:

  • 棋盤遊戲:如國際象棋中,王每次可以沿任意方向移動一個格子,切比雪夫距離用於計算王移動的步數
  • 倉儲和物流:在倉儲管理中,用於計算物品在網格倉庫中的最遠距離

優缺點分析

優點:

  • 計算簡單:切比雪夫距離的計算公式簡單,計算量小,適用於需要快速計算距離的場景
  • 直觀性強:對於某些特定場景,如棋盤遊戲,切比雪夫距離具有很強的直觀性

缺點:

  • 應用範圍有限:切比雪夫距離主要適用於特定場景,不適合所有型別的資料分析
  • 對異常值敏感:切比雪夫距離對資料中的異常值非常敏感,異常值可能會顯著影響計算結果

切比雪夫距離(Chebyshev Distance)

六、閔可夫斯基距離 (Minkowski Distance)

定義與公式

閔可夫斯基距離是歐氏距離和曼哈頓距離的廣義形式,透過調整引數 𝑝𝑝,可以得到不同的距離度量。公式如下:

應用場景

閔可夫斯基距離廣泛應用於資料分析和機器學習中:

  • 分類演算法:如 k 近鄰 (KNN) 演算法中,透過調整 𝑝𝑝 值來選擇適合的距離度量
  • 聚類分析:如 k 均值 (k-Means) 聚類演算法中,透過調整 𝑝𝑝 值來確定樣本與聚類中心之間的距離

優缺點分析

優點:

  • 靈活性高:透過調整引數 𝑝,可以得到不同的距離度量,適應不同的應用場景
  • 計算公式統一:無論是曼哈頓距離還是歐氏距離,均可以透過統一的閔可夫斯基距離公式來計算

缺點:

  • 引數選擇困難:在實際應用中,選擇合適的 𝑝𝑝 值可能比較困難,需要根據具體問題進行調整
  • 對異常值敏感:閔可夫斯基距離對資料中的異常值較為敏感,可能會影響計算結果

閔可夫斯基距離 (Minkowski Distance)

七、雅卡爾指數 (Jaccard Index)

定義與公式

雅卡爾指數用於衡量兩個集合的相似度,其值為兩個集合交集的大小除以並集的大小。公式如下:

應用場景

雅卡爾指數在以下領域有廣泛應用:

  • 資訊檢索:用於評估搜尋結果與查詢的相關性
  • 影像處理:用於比較影像分割結果與真實分割的相似度
  • 生態學:用於比較不同物種群落之間的相似度

優缺點分析

優點:

  • 適用於集合資料:雅卡爾指數特別適用於比較離散的集合資料
  • 計算簡單:雅卡爾指數的計算過程簡單,適用於大規模資料處理

缺點:

  • 對稀疏資料效果較差:對於稀疏資料(如文字資料),雅卡爾指數可能不準確,需要結合其他方法使用
  • 無法處理權重資訊:雅卡爾指數僅考慮集合中元素的存在與否,不考慮元素的權重資訊

雅卡爾指數(Jaccard Index)

八、半正矢距離 (Haversine Distance)

定義與公式

半正矢距離用於計算地球表面上兩點之間的最短距離,考慮到地球的球形特性。公式如下:

應用場景

半正矢距離主要用於以下場景:

  • 地理資訊系統 (GIS):用於計算地球表面兩點之間的最短距離
  • 導航系統:用於GPS導航系統中,計算起點和終點之間的距離
  • 航空和海洋運輸:用於計算航線和航程

優缺點分析

優點:

  • 考慮地球曲率:半正矢距離考慮到地球的球形特性,計算結果更準確
  • 適用於長距離計算:對於長距離的兩點間距離計算,半正矢距離比直線距離更準確

缺點:

  • 計算複雜:半正矢距離的計算公式較複雜,計算量較大,不適合實時計算
  • 對短距離不敏感:對於短距離的兩點間距離計算,半正矢距離與直線距離差異不大

半正矢距離 (Haversine Distance)

防失聯,進免費知識星球,直達演算法金 AI 實驗室 https://t.zsxq.com/ckSu3

免費知識星球,歡迎加入,一起交流切磋

九、Sørensen-Dice 係數

(Sørensen-Dice Coefficient)

定義與公式

Sørensen-Dice 係數用於衡量兩個集合的相似度,其值為兩個集合交集的大小的兩倍除以兩個集合大小的總和。公式如下:

應用場景

Sørensen-Dice 係數在以下領域有廣泛應用:

  • 資訊檢索:用於評估搜尋結果與查詢的相關性
  • 影像處理:用於比較影像分割結果與真實分割的相似度
  • 生態學:用於比較不同物種群落之間的相似度

優缺點分析

優點:

  • 適用於集合資料:Sørensen-Dice 係數特別適用於比較離散的集合資料
  • 計算簡單:Sørensen-Dice 係數的計算過程簡單,適用於大規模資料處理

缺點:

  • 對稀疏資料效果較差:對於稀疏資料(如文字資料),Sørensen-Dice 係數可能不準確,需要結合其他方法使用
  • 無法處理權重資訊:Sørensen-Dice 係數僅考慮集合中元素的存在與否,不考慮元素的權重資訊

Sørensen-Dice 係數 (Sørensen-Dice Coefficient)

[ 抱個拳,總個結 ]

各種距離和相似度的對比分析

數學性質對比

  • 歐氏距離:度量空間中兩點之間的直線距離,具有平移不變性和對稱性
  • 餘弦相似度:度量兩個向量之間夾角的餘弦值,僅考慮向量的方向,不考慮向量的大小
  • 漢明距離:度量兩個等長字串之間不同字元的個數,適用於離散資料
  • 曼哈頓距離:度量空間中兩點在各座標軸上的距離之和,適用於高維資料
  • 切比雪夫距離:度量兩個點在各座標軸上的最大距離,適用於棋盤遊戲等特定場景
  • 閔可夫斯基距離:歐氏距離和曼哈頓距離的廣義形式,透過調整引數 𝑝𝑝 可得到不同的距離度量
  • 雅卡爾指數:度量兩個集合的相似度,計算兩個集合交集與並集的比值
  • 半正矢距離:計算地球表面兩點間的最短距離,考慮地球的球形特性
  • Sørensen-Dice 係數:度量兩個集合的相似度,計算兩個集合交集大小的兩倍與兩個集合大小總和的比值

計算複雜度對比

  • 歐氏距離:𝑂(𝑛),計算簡單,適用於大多數應用場景
  • 餘弦相似度:𝑂(𝑛),計算簡單,適合大規模資料處理
  • 漢明距離:𝑂(𝑛),計算簡單,適合離散資料
  • 曼哈頓距離:𝑂(𝑛),計算簡單,適用於高維資料
  • 切比雪夫距離:𝑂(𝑛),計算簡單,適用於特定場景
  • 閔可夫斯基距離:𝑂(𝑛),透過調整引數 𝑝𝑝,適應不同的應用場景
  • 雅卡爾指數:𝑂(𝑛),計算簡單,適用於集合資料
  • 半正矢距離:𝑂(1),公式複雜,適合地理資訊系統等場景
  • Sørensen-Dice 係數:𝑂(𝑛),計算簡單,適用於集合資料

適用場景對比

  • 歐氏距離:適用於空間距離計算、分類演算法(如 KNN)、聚類分析(如 K-Means)
  • 餘弦相似度:適用於文字相似度計算、推薦系統、影像相似度計算
  • 漢明距離:適用於錯誤檢測和糾正、基因序列分析、密碼學
  • 曼哈頓距離:適用於資料探勘和機器學習、影像處理、機器人路徑規劃
  • 切比雪夫距離:適用於棋盤遊戲、倉儲和物流
  • 閔可夫斯基距離:適用於分類演算法、聚類分析
  • 雅卡爾指數:適用於資訊檢索、影像處理、生態學
  • 半正矢距離:適用於地理資訊系統、導航系統、航空和海洋運輸
  • Sørensen-Dice 係數:適用於資訊檢索、影像處理、生態學

核心要點回顧

  • 歐氏距離:計算空間中兩點間的直線距離,簡單易懂
  • 餘弦相似度:計算兩個向量間夾角的餘弦值,適合文字和向量資料
  • 漢明距離:計算兩個等長字串間不同字元的個數,適合離散資料
  • 曼哈頓距離:計算空間中兩點在各座標軸上的距離之和,適合高維資料
  • 切比雪夫距離:計算兩點間各座標軸上的最大距離,適用於特定場景
  • 閔可夫斯基距離:歐氏距離和曼哈頓距離的廣義形式,透過引數調整適應不同場景
  • 雅卡爾指數:計算兩個集合的相似度,適合集合資料
  • 半正矢距離:計算地球表面兩點間的最短距離,考慮地球曲率
  • Sørensen-Dice 係數:計算兩個集合的相似度,適合集合資料

- 科研為國分憂,創新與民造福 -

日更時間緊任務急,難免有疏漏之處,還請大俠海涵 內容僅供學習交流之用,部分素材來自網路,侵聯刪

[ 演算法金,碎碎念 ]

這個神反饋,

有點意思

hhh~

全網同名,日更萬日,讓更多人享受智慧樂趣

如果覺得內容有價值,煩請大俠多多 分享、在看、點贊,助力演算法金又猛又持久、很黃很 BL 的日更下去;

同時邀請大俠 關注、星標 演算法金,圍觀日更萬日,助你功力大增、笑傲江湖

相關文章