一、你知道聚類中度量距離的方法有哪些嗎?
1)歐式距離
歐氏距離是最易於理解的一種距離計算方法,源自歐氏空間中兩點間的距離公式。即兩點之間直線距離,公式比較簡單就不寫了
應用場景:適用於求解兩點之間直線的距離,適用於各個向量標准統一的情況
2)曼哈頓距離(Manhattan Distance)
從名字就可以猜出這種距離的計算方法了。想象你在曼哈頓要從一個十字路口開車到另外一個十字路口,實際駕駛距離就是這個“曼哈頓距離”。而這也是曼哈頓距離名稱的來源, 曼哈頓距離也稱為城市街區距離(City Block distance)
應用場景:主要應用場景,如棋盤、城市里兩個點之間的距離等
3)切比雪夫距離 (Chebyshev Distance )
國際象棋玩過么?國王走一步能夠移動到相鄰的8個方格中的任意一個(國王可以直行、橫行、斜行,但是每次只能動一個格。國王是生命的象征,國王死掉,棋局結束)。那么國王從格子\((x_1,y_1)\)走到格子\((x_1,y_1)\)最少需要多少步?自己走走試試。你會發現最少步數總是\(max(|x_2-x_1|,|y_2-y_1|)\)步 。有一種類似的一種距離度量方法叫切比雪夫距離,公式是:
\( Cdist = max(|x_i - y_i)) \)
應用場景:計算國際象棋中國王走步
4) 夾角余弦相似度(Cosine)
夾角越小越相似,\(cos\theta = \frac{a^Tb}{|a||b|}\)
應用場景:常用於文本識別,比如新聞的挖掘
舉例:
文本1中詞語a,b分別出現100,50次,向量表示為(100,50)
文本2中詞語a,b分別出現50,25次,向量表示為(50,25)
文本3中詞語a,b分別出現10,0次,向量表示為(10,0)
文本4中詞語a,b分別出現2,0次,向量表示為(2,0)
可以得知,1,2點向量平行(詞頻比例相同),3,4點向量平行,那么是不是可以判斷1,2文本更相似,3,4文本更相似呢?
5)Pearson相關系數
皮爾遜相關系數考察兩個變量的關系,值越大,兩個變量越近強相關,即距離越近,所以距離:\(dist(X,Y) = 1 - \rho_{X,Y}\)
\(\rho_{X,Y} = Cov(X, Y)/\sigma_X\sigma_Y = E((X-\mu_X)(Y-\mu_Y))/\sigma_X\sigma_Y\)
6)馬氏距離
用來度量一個樣本點P與數據分布為D的集合的距離。
假設一個樣點P為:\(x = (x_1,x_2,x_3,...,x_N)^T\)
數據集D均值為:\(\mu = (\mu_1,\mu_2,\mu_3,...,\mu_N)^T\),協方差矩陣是\(S\)
則這個樣本點P與數據集合D的馬氏距離為:\(D_M(x) = \sqrt{(x-\mu)^TS^{-1}(x-\mu)}\)
馬氏距離也可以衡量兩個來自同一分布的樣本x和y的相似性,其中x和y是向量:\(d(x,y) = \sqrt{(x-y)^TS^{-1}(x-y)}\)
當樣本集合的協方差矩陣是單位矩陣時,即樣本的各個維度上的方差均為1.馬氏距離就等於歐式距離相等。
不難發現,如果去掉馬氏距離中的協方差矩陣,就退化為歐氏距離。那么我們就需要探究這個多出來的因子究竟有什么含義
例子:
如果我們以厘米為單位來測量人的身高,以克(g)為單位測量人的體重。每個人被表示為一個兩維向量,如一個人身高173cm,體重50000g,表示為(173,50000),根據身高體重的信息來判斷體型的相似程度。
我們已知小明(160,60000);小王(160,59000);小李(170,60000)。根據常識可以知道小明和小王體型相似。但是如果根據歐幾里得距離來判斷,小明和小王的距離要遠遠大於小明和小李之間的距離,即小明和小李體型相似。這是因為不同特征的度量標准之間存在差異而導致判斷出錯。
以克(g)為單位測量人的體重,數據分布比較分散,即方差大,而以厘米為單位來測量人的身高,數據分布就相對集中,方差小。馬氏距離的目的就是把方差歸一化,使得特征之間的關系更加符合實際情況。
圖(a)展示了三個數據集的初始分布,看起來豎直方向上的那兩個集合比較接近。在我們根據數據的協方差歸一化空間之后,如圖(b),實際上水平方向上的兩個集合比較接近
為什么馬氏距離是與尺度無關的?
也許你認為那只要將數據標准化后,不就可以計算距離了嗎?但是如果是單純使每個變量先標准化,然后再計算距離,可能會出現某種錯誤,原因是可能在有些多維空間中,某個兩個維之間可能是線性相關的,協方差矩陣的引入可以去除特征的線性相關性。
7)海明距離
在信息領域,兩個長度相等的字符串的海明距離是在相同位置上不同的字符的個數,也就是將一個字符串替換成另一個字符串需要的替換的次數。
例如:
"toned" and "roses" is 3
1011101 and 1001001 is 2
2173896 and 2233796 is 3
海明距離若用於分類變量,如果X與Y的值相同,距離D為0,否則D為1:
\(D_H = \sum_{i=1}^{n}|x_i - y_i|\)
\(x=y => D = 0\)
\(x\neq y => D = 1\)