機器學習 - 距離計算

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

  • 距離計算
  • 機率計算

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

歐式距離(Euclidean Metric)

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

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

曼哈頓距離(Manhattan distance)

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

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

海明距離(Hamming distance)

單詞「advice」和「advise」之間的距離是多少呢?大數據

距離是1,由於只須要替換一個字符,就能夠將一個單詞變換成另外一個單詞。idea

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

編輯距離(Levenshtein distance,Edit distance)

單詞「how」和「show」之間的距離是多少呢?htm

距離是1,由於只要進行1次下面的動做,就能夠從一個詞變換到另外一個詞:

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

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

其它距離

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

距離的分類

從距離的形式來劃分的話,能夠分爲以下三類:

幾何距離

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

計算距離

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

統計距離

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

參考文獻

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

【2】大數據時代的算法

【3】Thoughtful Machine Learning with Python

相關文章
相關標籤/搜索