度量學習中的馬氏距離(Mahalanobis Distance)

對馬氏距離的定義:

馬氏距離是由印度統計學家馬哈拉諾比斯(P. C. Mahalanobis)提出的,表示數據的協方差距離。它是一種有效的計算兩個未知樣本集的相似度的方法。與歐氏距離不同的是它考慮到各種特性之間的聯繫(例如:一條關於身高的信息會帶來一條關於體重的信息,因爲兩者是有關聯的)並且是尺度無關的(scale-invariant),即獨立於測量尺度。 對於一個均值爲

,協方差矩陣爲Σ的多變量矢量

,其馬氏距離爲

馬氏距離也可以定義爲兩個服從同一分佈並且其協方差矩陣爲Σ的隨機變量XY的差異程度:

如果協方差矩陣爲單位矩陣,馬氏距離就簡化爲歐式距離;如果協方差矩陣爲對角陣,其也可稱爲正規化的馬氏距離。

其中σi是xi的標準差。

馬氏距離實際意義

那麼馬氏距離就能能幹什麼?它比歐氏距離好在哪裏?舉幾個栗子

歐式距離近就一定相似?

先舉個比較常用的例子,身高和體重,這兩個變量擁有不同的單位標準,也就是有不同的scale。比如身高用毫米計算,而體重用千克計算,顯然差10mm的身高與差10kg的體重是完全不同的。但在普通的歐氏距離中,這將會算作相同的差距。

歸一化後歐氏距離近就一定相似?

當然我們可以先做歸一化來消除這種維度間scale不同的問題,但是樣本分佈也會影響分類

舉個一維的栗子,現在有兩個類別,統一單位,第一個類別均值爲0,方差爲0.1,第二個類別均值爲5,方差爲5。那麼一個值爲2的點屬於第一類的概率大還是第二類的概率大?距離上說應該是第一類,但是直覺上顯然是第二類,因爲第一類不太可能到達2這個位置。

所以,在一個方差較小的維度下很小的差別就有可能成爲離羣點。就像下圖一樣,A與B相對於原點的距離是相同的。但是由於樣本總體沿着橫軸分佈,所以B點更有可能是這個樣本中的點,而A則更有可能是離羣點。

 

算上維度的方差就夠了?

還有一個問題——如果維度間不獨立同分布,樣本點一定與歐氏距離近的樣本點同類的概率更大嗎?

 

 

可以看到樣本基本服從f(x) = x的線性分佈,A與B相對於原點的距離依舊相等,顯然A更像是一個離羣點

即使數據已經經過了標準化,也不會改變AB與原點間距離大小的相互關係。所以要本質上解決這個問題,就要針對主成分分析中的主成分來進行標準化。

馬氏距離的幾何意義

上面搞懂了,馬氏距離就好理解了,只需要將變量按照主成分進行旋轉,讓維度間相互獨立,然後進行標準化,讓維度同分布就OK了

由主成分分析可知,由於主成分就是特徵向量方向,每個方向的方差就是對應的特徵值,所以只需要按照特徵向量的方向旋轉,然後縮放特徵值倍就可以了,可以得到以下的結果:

 

 

離羣點就被成功分離,這時候的歐式距離就是馬氏距離。

馬氏距離的推導

首先要對數據點進行旋轉,旋轉至主成分,維度間線性無關,假設新的座標爲

 

 

又變換後維度間線性無關且每個維度自己的方差爲特徵值,所以滿足:

 

 

馬氏距離是旋轉變換縮放之後的歐式距離,所以馬氏距離的計算公式爲:

這就是之前提到的馬氏距離的公式

馬氏距離的問題

  • 協方差矩陣必須滿秩

裏面有求逆矩陣的過程,不滿秩不行,要求數據要有原維度個特徵值,如果沒有可以考慮先進行PCA,這種情況下PCA不會損失信息

  • 不能處理非線性流形(manifold)上的問題

只對線性空間有效,如果要處理流形,只能在局部定義,可以用來建立KNN圖


 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章