馬氏距離(Mahalanobis Distance)
馬氏距離(Mahalanobis Distance)是由印度統計學家馬哈拉諾比斯(P. C. Mahalanobis)提出的,表示數據的協方差距離。它是一種有效的計算兩個未知樣本集的相似度的方法。它考慮到數據特征之間的聯系,並且是尺度無關的(scale-invariant),即獨立於測量尺度。
馬氏距離的定義
假設\(x\),\(y\)是從均值向量為\(\mu\),協方差矩陣為\(\Sigma\)的總體\(G\)中隨機抽取的兩個樣本,定義\(x\),\(y\)兩點之間的馬氏距離為:
定義\(x\)與總體\(G\)的馬氏距離為:
其中,如果協方差矩陣是單位向量,也就是各維度獨立同分布,馬氏距離就變成了歐氏距離。
注:上面的兩個表達式其實是馬氏距離的平方
為什么定義馬氏距離
1. 數據指標的單位對距離度量的影響
在很多機器學習問題中,樣本間的特征都可以用距離去描述,比如說最常見的歐氏距離。對於歐氏距離而言,空間中任意兩點\(P=(x_1, x_2, \dots, x_p)\)與\(Q=(y_1, y_2, \dots, y_p)\)之間的距離為:
顯然,當固定點\(Q\)且取值為\(0\)時,表示點\(P\)到坐標原點的距離。
歐氏距離有一個缺點,就是當各個分量為不同性質的量時(比如,人的身高與體重,西瓜的重量與體積),“距離”的大小竟然與指標的單位有關。例如,橫軸\(x_1\)代表重量(以\(kg\)為單位),縱軸\(x_2\)代表長度(以\(cm\)為單位)。有四個點\(A, B, C, D\),如圖2.1所示。
圖2.1
這時
\(d(A, B) = \sqrt{5^2+10^2} = \sqrt {125}\)
\(d(C, D) = \sqrt{10^2+1^2} = \sqrt {101}\)
顯然,\(AB\)比\(CD\)要長。
現在,如果\(x_2\)用毫米\((mm)\)做單位,\(x_1\)保持不變,此時\(A\)坐標\((0, 50)\),\(C\)坐標為\((0, 100)\),則
\(d(A, B) = \sqrt{50^2+10^2} = \sqrt {2600}\)
\(d(C, D) = \sqrt{100^2+1^2} = \sqrt {10001}\)
結果\(CD\)反而比\(AB\)長!這顯然是不夠合理的。
2. 樣本分布對距離度量的影響
雖然我們可以先做歸一化來消除這種維度間度量單位不同的問題,但是樣本分布也會影響距離度量。我們可以看到,歐氏距離中每個坐標的權重是同等的。但是現實問題中,當坐標軸表示觀測值時,它們往往帶有大小不等的隨機波動,即具有不同的方差,顯然它們之間的權重是不同的。
下面舉兩個一維的例子說明這個問題:
設有兩個正態分布總體\(G_1: N(\mu_1, \sigma_1^2)\)和\(G_2: N(\mu_2, \sigma_2^2)\)。若有一個樣本,其值在點A處,那么,A距離哪個總體近些呢?如圖2.2所示:
圖2.2
從絕對長度來看,點A距離左面的總體\(G_1\)近些,即點A到\(\mu_1\)比到\(\mu_2\)要近些,(這里用的是歐氏距離,比較的是A點坐標與\(\mu_1\)到\(\mu_2\)值之差的絕對值),但從概率觀點來看,A點在\(\mu_1\)右側約4\(\sigma_1\)處,而在\(\mu_2\)的左側約3\(\sigma_2\)處,若以標准差來衡量,A點距離\(\mu_2\)要更“近一些”。后者是從概率角度來考慮的,它是用坐標差的平方除以方差(或者說乘以方差的倒數),從而化為無量綱數,推廣到多維就要乘以協方差矩陣\(\Sigma\)的逆矩陣\(\Sigma^{-1}\)。
再來看下圖2.3,A與B相對於原點的距離是相同的。但是由於樣本總體沿着橫軸分布,所以B點更有可能是這個樣本中的點,而A則更有可能是離群點。在一個方差較小的維度下很小的差別就有可能成為離群點。
圖2.3
3. 維度間具有相關性對距離度量的影響
我們看到,上面描述的情形是維度間或者說特征之間是不相關的,那么如果維度間具有相關性會怎樣呢?如下圖2.4所示:
圖2.4
可以看到樣本點可以近似看做是\(f(x) = x\)的線性分布,A與B相對於原點的距離依舊相等,顯然A更像是一個離群點,也即是說離樣本總體較遠。
即使數據已經經過了標准化,也不會改變AB與原點間距離大小的相互關系。所以要本質上解決這個問題,就要針對主成分分析中的主成分來進行標准化。
為什么標准化不會改變距離大小的相互關系,這里以最常見的z-score標准化(也叫標准差標准化)為例進行簡單說明。這種方法給予原始數據的均值(mean)和標准差(standard deviation)進行數據的標准化。經過處理的數據符合標准正態分布,即均值為0,標准差為1,其轉化函數為:\(x^∗=(x−\mu)/\sigma\),其中\(\mu\)為所有樣本數據的均值,\(\sigma\)為所有樣本數據的標准差。
顯然這里的\(\mu\)和\(\sigma\)都是相同的,所以標准化只相當於對A、B點與數據中心距離進行了一個等比例縮放,並不影響它們之間大小的相互關系。
由此可見,僅僅靠標准化的歐氏距離還是存在很大問題的,數據相關性對判定結果的影響還是很大的。
為什么z-score 標准化后的數據標准差為1?
x-μ只改變均值,標准差不變,所以均值變為0
(x-μ)/σ只會使標准差除以σ倍,所以標准差變為1
即
\(E(x^*) = E[\frac{x-E(x)}{\sqrt{D(x)}}] = \frac{1}{\sqrt{D(x)}}E[x-E(x)]=0\)\(D(x^*) = D\big[\frac{x-E(x)}{\sqrt{D(x)}}\big] = \frac{1}{D(x)}D[x-E(x)] = \frac{D(x)}{D(x)} = 1\)
OK! 總結一下問題:
1)要考慮維度間相關性的影響
2)要考慮方差的影響
3)要考慮度量單位或者說量綱的影響
因此,有必要建立一種統計距離(只是一種術語,用於區別常用的歐氏距離),這種距離要能夠體現各個變量在變差大小上的不同,以及有時存在着的相關性,還要求距離與各變量所用的單位無關。看來我們選擇的距離要依賴於樣本的方差和協方差。馬氏距離就是最常用的一種統計距離。
馬氏距離的幾何意義
那么怎么辦?,其實如果上面內容已經搞懂了,我們就會知道,只需要將變量按照主成分進行旋轉,讓維度間相互獨立,然后進行標准化,讓維度同分布就OK了,然后計算馬氏距離就變成了計算歐氏距離。
由主成分分析可知,由於主成分就是特征向量方向,每個方向的方差就是對應的特征值,所以只需要按照特征向量的方向旋轉,然后縮放特征值倍就可以了,可以得到以下的結果,圖2.5:
圖2.5
離群點就被成功分離,這時候的馬氏距離就是歐氏距離。
馬氏距離的推導
假設原始的多維樣本數據\(X_{n\times m}\)(\(n\)行,\(m\)列):
其中每行表示一個樣本,\(X_i\)表示樣本的第\(i\)個維度,\(X_i=(x_{1i}, x_{2i}, \dots, x_{ni})^T, i=1, 2, \dots, m\),則以上多維樣本數據可記為:\(X = (X_1, X_2, \dots, X_m)\)
樣本總體的均值向量記為:\(\mu_X=(\mu_{X1},\mu_{X2},\dots,\mu_{Xm})\)
協方差矩陣記為:\(\Sigma_X = E[(X-\mu_X)^T(X-\mu_X)] = \frac{1}{n}(X-\mu_X)^T(X-\mu_X)\)
按照之前的描述,首先要對數據進行轉換,旋轉至主成分,使維度間線性無關。假設將原始數據\(X\)通過坐標旋轉矩陣\(U\)變換得到了新的坐標,對應的新數據集記為\(F\)(實際上\(X\),\(F\)表示的是同一個數據集,只是由於坐標值不同,為了區分而使用不同標記),數據集\(F\)的均值向量記為\(\mu_F=(\mu_{F1},\mu_{F2},\dots,\mu_{Fm})\),則:
變換后的數據維度間線性無關,且每個維度的方差為特征值,即協方差矩陣\(\Sigma_F\)是對角陣,所以:
其中,\(\lambda_i, i=1, 2, \dots, m\)表示每個維度的方差。
推導到這里之后,我們就可以推導出馬氏距離公式了,假設要計算\(X\)的一個樣本點\(x=(x_1, x_2, \dots, x_3)\)到重心\(\mu_X=(\mu_{X1},\mu_{X2},\dots,\mu_{Xm})\)的馬氏距離。等價於求\(F\)中點\(f = (f_1, f_2, \dots, f_m)\)標准化后的坐標值到標准化數據重心坐標值\(\mu_F=(\mu_{F1},\mu_{F2},\dots,\mu_{Fm})\)的歐氏距離。
這就是前面定義的馬氏距離的計算公式
如果\(x\)是列向量,則
如果把推導過程中的重心點\(\mu_X\)改換成任意其他樣本點\(y\),則可以得到兩個樣本點之間的馬氏距離公式為:
假設\(E\)表示一個點集,\(d\)表示距離,它是\(E \times E\)到\([0, \infty)\)的函數,可以證明,馬氏距離符合距離度量的基本性質
以上!
機器學習筆記-距離度量與相似度
1)機器學習筆記-距離度量與相似度(一)閔可夫斯基距離
參考來源:
1)https://www.jianshu.com/p/5706a108a0c6
2)https://blog.csdn.net/u010167269/article/details/51627338
3)https://zhuanlan.zhihu.com/p/46626607
4)多元統計分析-何曉群
