機器學習 - 距離計算


在機器學習領域里,最核心的兩種數值計算分別是:

  • 距離計算
  • 概率計算

今天Reinhard Hsu就來看看常見都有哪些常見的的距離計算。

歐式距離(Euclidean Metric)

歐幾里得距離,用於計算兩個點之間的實際距離,計算方法是使用畢達哥拉斯定理,也就是咱們中國的勾股定理。

對於二維平面上的兩點,它們的歐式距離可以這樣算:
$$
d=\sqrt{(x_1-x_2)2+(y_1-y_2)2}
$$

曼哈頓距離(Manhattan distance)

想象下你站在曼哈頓街區,需要從一個十字路口走到另一個十字路口,無法穿過建築,只能沿着街道走。

對於二維平面上的兩點,它們的曼哈頓距離可以這樣算:
$$
d=|x_1-x_2|+|y_1-y_2|
$$

海明距離(Hamming distance)

單詞“advice”和“advise”之間的距離是多少呢?

距離是1,因為只需要替換一個字符,就可以將一個單詞變換成另一個單詞。

海明距離用於測量長度相等的字符串之間的距離。

編輯距離(Levenshtein distance,Edit distance)

單詞“how”和“show”之間的距離是多少呢?

距離是1,因為只要進行1次下面的動作,就可以從一個詞變換到另一個詞:

  • 插入一個字母
  • 刪除一個字母
  • 交換相鄰兩個字母的位置
  • 把一個字母替換成另一個字母

編輯距離常用於自然語言處理中的拼寫檢查,和文本相似性檢查。

其它距離

  • 馬氏距離(Mahalanobis distance)
  • 切比雪夫距離
  • 閔氏距離
  • 余弦距離
  • 傑卡德距離(Jaccard Distance)。

距離的分類

從距離的形式來划分的話,可以分為如下三類:

幾何距離

直觀地測量物體從一個點到另一個點有多遠。包括歐幾里得距離、余弦距離,都屬於幾何距離。

計算距離

包括曼哈頓距離、編輯距離(Levenshtein distance)。

統計距離

包括馬氏距離(Mahalanobis distance)、傑卡德距離(Jaccard Distance)。

參考文獻

【1】怎樣寫一個拼寫檢查器 by Peter Norvig

【2】大數據時代的算法

【3】Thoughtful Machine Learning with Python


免責聲明!

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



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