馬氏距離

1馬氏距離



馬氏距離是由印度統計學家馬哈拉諾比斯(P. C. Mahalanobis)提出的,是歐氏距離的一種推廣。它通過協方差來計算兩點之間距離,是一種有效的計算兩個未知樣本集的相似度的方法。與歐氏距離不同的是它考慮到各種特性之間的相關性。先上兩個圖看下馬氏距離與歐氏距離的區別。



上圖左爲歐氏距離,A和B到mu是一樣的距離,上圖右爲馬氏距離,A和B到mu也是一樣的距離,這說明馬氏距離的計算中考慮了在不同方向上尺度單位是不同的。比如機器學習中,不同特徵之間的數據光看數值是沒有意義的,需要結合量綱,而每個特徵又具有很多量綱,比如身高的單位可以是釐米,也可以是米。那麼不同特徵之間該如何合理地統一處理呢?

馬氏距離是在統計學中提出的,與多元高斯分佈具有緊密聯繫。首先回顧一下概念,多元隨機變量記爲X=[x_1,x_2,...,x_D]^T,mu爲均值向量,Sigma爲協方差矩陣, 那麼多元高斯分佈N(mu,Sigma)爲,
其中協方差矩陣的逆包含了正交(旋轉、反射)和縮放(具體參見下文),下圖是一個二維的例子,首先將(X-mu)旋轉到與x_1平行,再分別沿兩個軸縮放,即變換成新的矢量,求它的歐氏長度平方,乘以-0.5得到exp[ ]裏面部分。
而馬氏距離就是exp[ ]裏面部分,具體定義如下,
它自然是滿足距離的三個條件的。假設多元隨機變量X和Y屬於同一個高斯分佈N(mu, Sigma),則它們之間的馬氏距離定義類似,只要將上式中的mu改成Y。學過微分幾何的童鞋看着這個式子應該會想到啥,這裏協方差矩陣的逆可以看成一個度量張量,只是這裏這個張量在整個域上都是一樣的,不象一般流形那樣可以處處不同。

如果協方差矩陣爲單位矩陣,那麼馬氏距離就簡化爲歐式距離,如果協方差矩陣爲對角陣,則其也可稱爲標準化的歐氏距離,即
此時表示X和Y是獨立的,那麼當X和Y有一定相關性時該如何計算呢,馬哈拉諾比斯1936年發表的論文里正是將上面獨立情況推廣到一般情況時引出了馬氏距離。協方差矩陣考慮了它們之間的相關性,那麼這裏逆矩陣到底有什麼幾何意義呢。

2幾何解釋



爲了更好地揭示馬氏距離的幾何意義,先對協方差矩陣作奇異值分解(SVD),因爲協方差矩陣對稱,所以就等價於特徵值分解,同時也得到協方差矩陣的逆矩陣。也可以用別的分解,比如Cholesky分解等,但是SVD和特徵值分解有個好處就是正交和縮放分離,更能顯義。分解後得到,
此時,馬氏距離爲,



相當於對X-mu作了旋轉或旋轉反射變換(矩陣U是正交矩陣,根據行列式正1或負1分爲兩種變換)得到Y,即
再對Y的分量分別作縮放,具體就是除以相應的特徵值,其實這裏的結果就是變換爲標準正態分佈,即Y~N(0,1)。下面是相對上面這些變換的圖解,圖中可以看出,計算馬氏距離時先用矩陣U^T去變換(X-mu)(第二個圖,簡單點就當旋轉(X-mu)吧),再對不同量綱的特徵作統一量綱處理(第三個圖,標準化變成單位方差),再計算相應的歐氏距離,最後的效果相當於第四個圖。這裏圖二、圖三和圖四上的座標已經不是x了。
 




一般來說,馬氏距離排除了量綱的影響,具有尺度無關性,即與數據的測量單位無關;同時也排除了特徵之間相關性的干擾。



3離散形式



馬氏距離是從多元高斯分佈引出的,如果不是退化的情況,這裏Sigma矩陣自然是可逆的,但是實際應用中,有時並不知道分佈,那麼這個矩陣哪裏來?假設數據矩陣爲X,即每行表示一次採樣數據,每列對應一個特徵,設總共N行,D列,即總共有N個D維的數據,一般需要N>D,否則下面的協方差矩陣矩陣將不可逆。此時協方差矩陣爲,
一般不直接對它作SVD分解,而是對X作SVD分解,然後計算協方差矩陣以及相應的逆矩陣,
注意,這裏得到的協方差矩陣也未必是可逆的,相當於退化的高斯分佈,說明數據維度有冗餘。

4應用舉例



最典型的就是根據距離作判別問題,即假設有n個總體,計算某個樣品X歸屬於哪一類的問題。此時雖然樣品X離某個總體的歐氏距離最近,但是未必歸屬它,比如該總體的方差很小,說明需要非常近才能歸爲該類。對於這種情況,馬氏距離比歐氏距離更適合作判別。比如下圖表示男女兩類身高和體重的採樣數據,假如男和女先驗分佈已知,可以用馬氏距離判別新的數據。

5思考一下



1、實際應用中,協方差矩陣由離散數據計算而來,如果數據矩陣X(X^TX)的有些奇異值(特徵值)爲0,說明什麼?該如何處理?

2、Sigma^-1的奇異值非零但非常小,那麼會引起數值穩定性問題,該如何處理?

3、馬氏距離有什麼缺點?

4、試想馬氏距離的推廣,最簡單的比如加權。

提示

比如通過PCA處理,將對應小特徵值的特徵丟棄是不是可以改善一下某些問題。或者通過如下方式改善,
以上只是本小組對相關概念的粗糙理解,由於水平有限,不夠嚴密甚至錯誤之處在所難免,希望大家指出來,寫出來一方面也是想多聽聽別人的想法和高見,不斷提高自己。
發佈了16 篇原創文章 · 獲贊 6 · 訪問量 2萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章