大俠幸會,在下全網同名「演算法金」 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 的日更下去;
同時邀請大俠 關注、星標 演算法金,圍觀日更萬日,助你功力大增、笑傲江湖