Search
Duplicate

수학/ Mahalanobis Distance

Mahalanobis Distance

마할라노비스 거리는 다변수 데이터에서 한 점이 데이터셋의 평균에 얼마나 가까운지를 측정하는 방법이다.
직관적으로 표현해서 사건이 얼마나 일어나기 힘든 일인가를 나타낸다.
마할라노비스 거리 Δ\Delta는 다음처럼 정의된다.
아래의 식에서 x\bold{x}는 데이터포인트이고, μ\boldsymbol{\mu}는 데이터셋의 평균이나 중심이 되고, Σ1\boldsymbol{\Sigma}^{-1}은 데이터셋 공분산행렬의 역행렬(정밀도 행렬)이다.
Δ2(xμ)TΣ1(xμ)\Delta^2 \triangleq (\bold{x}-\boldsymbol{\mu})^T \boldsymbol{\Sigma}^{-1}(\bold{x}-\boldsymbol{\mu})
마할라노비스 거리는 데이터셋의 평균 뿐만 아니라 두 벡터나 또는 두 데이터 포인트 간의 거리도 구할 수 있다.
이 경우에는 평균과의 차이가 아니라 두 데이터셋의 차이에 두 데이터셋 분포의 공분산 행렬을 사용하면 된다.
Δ2=(xy)TΣ1(xy)\Delta^2 = (\bold{x}-\bold{y})^T \boldsymbol{\Sigma}^{-1}(\bold{x}-\bold{y})
공분산행렬이 양의 정부호 행렬이기 때문에 고유분해가 가능하고, 다음과 같이 쓸 수 있다.
여기서 λd\lambda_ddd번째 고유값, udu_ddd번째 고유벡터이다.
Σ=d=1DλdududT\boldsymbol{\Sigma} = \sum_{d=1}^{D} \lambda_d \bold{u}_d \bold{u}_d^T
공분산행렬의 역행렬인 정밀도 행렬은 다음과 같이 작성할 수 있다.
Σ1=d=1D1λdududT\boldsymbol{\Sigma}^{-1} = \sum_{d=1}^{D} {1 \over \lambda_d} \bold{u}_d \bold{u}_d^T
고유분해를 이용해 마할라노비스 거리를 다음과 같이 다시 쓸 수 있다.
여기서 zd=udT(xμ)\bold{z}_d = \bold{u}_d^T (\bold{x} - \boldsymbol{\mu})로 정의
(xμ)TΣ1(xμ)=(xμ)T(d=1D1λdududT)(xμ)=d=1D1λd(xμ)TududT(xμ)=d=1Dzd2λd\begin{aligned} (\bold{x}-\boldsymbol{\mu})^T \boldsymbol{\Sigma}^{-1} (\bold{x}-\boldsymbol{\mu}) &= (\bold{x}-\boldsymbol{\mu})^T \left( \sum_{d=1}^{D} {1 \over \lambda_d} \bold{u}_d \bold{u}_d^T \right) (\bold{x}-\boldsymbol{\mu}) \\ &= \sum_{d=1}^{D} {1 \over \lambda_d} (\bold{x}-\boldsymbol{\mu})^T \bold{u}_d \bold{u}_d^T (\bold{x}-\boldsymbol{\mu}) \\ &= \sum_{d=1}^{D} {\bold{z}_d^2 \over \lambda_d} \end{aligned}

참고