在機器學習領域里,最核心的兩種數值計算分別是:
- 距離計算
- 概率計算
今天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)。
參考文獻
【2】大數據時代的算法