1. 程式人生 > >機器學習 - 距離計算

機器學習 - 距離計算

相似性 建築 strong 直觀 div pos card https 哪些

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

  • 距離計算
  • 概率計算

今天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

機器學習 - 距離計算