什么時候Mahalanobis距離比歐式距離更合適? 原創(chuàng)
我們常說機器學習三大件:模型、損失函數(shù)、優(yōu)化算法。
模型:線性回歸、邏輯回歸、SVM、CNN、RNN、LSTM、Transformer等等。
損失函數(shù):均方誤差、交叉熵、對比損失。
優(yōu)化算法:梯度下降、Adam、RMSProp、牛頓法等等。
其中損失函數(shù)通過衡量模型預測值和真實值之間的距離來評估模型的好壞,并將結果反饋給優(yōu)化算法來調整模型參數(shù),以此來最小化損失函數(shù)。
常見的距離衡量包括:歐氏距離、曼哈頓距離、余弦相似度、KL散度等。
均方誤差基于歐式距離、交叉熵基于KL散度、對比損失基于余弦相似度。
歐式距離在ML中是比較常用的,但它有個特點,就是假設所有特征之間是相互獨立的,也就是它不會考慮特征之間相關性信息。
因此,如果特征是相關的,歐幾里得距離將產生誤導性的結果。例如,考慮下面的這個虛擬數(shù)據(jù)集:
很明顯,特征之間是相關的,這里,考慮其中三個數(shù)據(jù)點P1,P2,P3。
根據(jù)數(shù)據(jù)分布,P2更接近P1,因為P1,P2都在分布內,而P3在分布外。
然而,如果根據(jù)歐式距離計算公式可得P2,P3與P1之間的距離是相等的。
馬哈拉諾比斯距離(Mahalanobis distance)克服了這個缺點,它計算距離時考慮了數(shù)據(jù)分布信息。
前面的數(shù)據(jù)集,如果應用Mahalanobis distance,P2比P3距離P1更近。
它是如何工作的?
概括一下就是:它的目標是構建一個新的坐標系,新坐標系的各個軸之間是相互獨立的,也就是相互正交。
具體步驟如下:
● 步驟 1:將列轉換為不相關的變量。
● 步驟 2:對新變量進行縮放,使其方差等于 1。
● 步驟 3:在這個新的坐標系中找到歐幾里得距離。
其中步驟1是通過對數(shù)據(jù)的協(xié)方差矩陣進行變換,使得新的變量之間沒有線性相關性,類似于主成分分析(PCA)的思想,詳細過程見附錄。
雖然最終還是用到了歐式距離,但步驟1的變換已經(jīng)使數(shù)據(jù)滿足了歐式距離的假設。
Mahalanobis distance最重要的應用就是異常檢測,例如,前面例子中的P3。
因為P1是分布的重心,如果歐式距離,P2,P3都不是異常值,用Mahalanobis distance結果就很明顯了。
這在高維空間,沒辦法數(shù)據(jù)可視化式尤為有用。
附錄:PCA主成分分析
假設我們有一個簡單的二維數(shù)據(jù)集,其中包含兩個特征X1 和X2,并且這兩個特征之間存在一定的線性相關性。
假設我們有以下樣本:
從這些數(shù)據(jù)中,我們可以看到X1和X2之間的數(shù)值是線性相關的,且大約滿足X2≈2×X1?1。
計算協(xié)方差矩陣并進行變換
1.計算均值
我們先計算每個特征的均值:
2.構建協(xié)方差矩陣
協(xié)方差矩陣衡量的是每對特征之間的線性相關性。假設我們得到以下協(xié)方差矩陣:
其中,矩陣中的每個元素代表對應的特征之間的協(xié)方差,非對角線元素表示X1和X2之間的相關性。
3.特征值分解
接下來我們對協(xié)方差矩陣進行特征值分解(Eigenvalue Decomposition),得到特征值和特征向量。假設我們得到以下特征向量和特征值:
4.轉換變量
使用特征向量,我們可以將原始數(shù)據(jù)X1,X2 轉換為新的變量Z1,Z2,這些新變量之間不再相關。轉換的方式是通過特征向量進行線性變換:
這里,V是特征向量矩陣。
在上面的例子中,X經(jīng)過特征向量矩陣變換后維度沒有變化,而在實際應用中,通常選擇前k個特征值對應的特征向量,然后X投影到新的基上,這樣新的特征不僅正交,而且還起到了降維的作用。
本文轉載自公眾號人工智能大講堂
原文鏈接:??https://mp.weixin.qq.com/s/1tH5Qws_mvwo49espx5zpw??
