機器學習中的相似性度量

2021-07-10 05:51:30 字數 1398 閱讀 1184

以下摘自原文:

在做分類時常常需要估算不同樣本之間的相似性度量(similarity measurement),這時通常採用的方法就是計算樣本間的「距離」(distance)。採用什麼樣的方法計算距離是很講究,甚至關係到分類的正確與否。

本文的目的就是對常用的相似性度量作乙個總結。

1. 歐氏距離

2. 曼哈頓距離

3. 切比雪夫距離

4. 閔可夫斯基距離

5. 標準化歐氏距離

6. 馬氏距離

7. 夾角余弦

8. 漢明距離

9. 傑卡德距離 & 傑卡德相似係數

10. 相關係數 & 相關距離

11. 資訊熵

1.歐氏距離(euclidean distance)

歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。

(1)二維平面上兩點a(x1,y1)與b(x2,y2)間的歐氏距離:

(2)三維空間兩點a(x1,y1,z1)與b(x2,y2,z2)間的歐氏距離:

(3)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的歐氏距離:

也可以用表示成向量運算的形式:

(4)matlab計算歐氏距離

matlab計算距離主要使用pdist函式。若x是乙個m×n的矩陣,則pdist(x)將x矩陣m行的每一行作為乙個n維向量,然後計算這m個向量兩兩間的距離。

例子:計算向量(0,0)、(1,0)、(0,2)兩兩間的歐式距離

x = [0 0 ; 1 0 ; 0 2]

d = pdist(x,'euclidean')

結果:d =

1.0000    2.0000    2.2361

2.曼哈頓距離(manhattan distance)

從名字就可以猜出這種距離的計算方法了。想象你在曼哈頓要從乙個十字路口開車到另外乙個十字路口,駕駛距離是兩點間的直線距離嗎?顯然不是,除非你能穿越大樓。實際駕駛距離就是這個「曼哈頓距離」。而這也是曼哈頓距離名稱的**, 曼哈頓距離也稱為城市街區距離(city block distance)

(1)二維平面兩點a(x1,y1)與b(x2,y2)間的曼哈頓距離

(2)兩個n維向量a(x11,x12,…,x1n)與 b(x21,x22,…,x2n)間的曼哈頓距離

(3) matlab計算曼哈頓距離

例子:計算向量(0,0)、(1,0)、(0,2)兩兩間的曼哈頓距離

x = [0 0 ; 1 0 ; 0 2]

d = pdist(x, 'cityblock')

結果:d =

1     2     3

相似性度量

二元向量的相似性度量 每一維都少的資訊量,主要是0,1等有 or 沒有屬性 dice 2 x y x y 2保證 0,1 維數不一致時,差別大。jaccard x y x y 交疊程度小時,值較低 交疊係數 x y min 互相之間的包含性,1 cosine x y 根號 x y 對於實值 只有co...

相似性度量

一般而言,定義乙個距離函式d x,y 需要滿足以下幾個準則 1.d x,x 0 到自己的距離為0 2.d x,y 0 距離要非負 3.對稱性,d x,y d y,x 如果a到b距離是a,那麼b到a的距離也應該是a 4.三角形法則 兩個之和大於第三邊 d x,k d k,y d x,y 滿足這4個條件...

相似性度量 機器學習距離公式總結

所有距離公式列表 嚴格意義上來看,閔可夫斯基距離不是一種距離,而是一組距離的定義。兩個n維向量 a x11,x12,x1n 與 b x2 1,x2 2,x2 n 間的閔可夫斯基距離為 其中 是乙個變引數 因此我們根據 引數的不同,閔可夫斯基距離可以表示一類距離。歐式距離即l2範數,是歐式空間兩點間的...