수학 개념 지도
데이터와 학습(Data and learning)

마할라노비스 거리(Mahalanobis distance)

데이터의 퍼짐과 상관을 고려한 거리. 공분산 행렬⁠(covariance matrix)⁠이 늘이고 돌려 놓은 공간을 되돌린(백색화⁠(whitening)⁠한) 뒤 잰 유클리드 거리⁠(Euclidean distance)⁠로, 평균⁠(mean)⁠에서 '표준편차⁠(standard deviation)⁠ 몇 개만큼' 떨어졌는지를 여러 차원에서 잰다.

dM(x⃗)=(x⃗−μ⃗)⊤ Σ−1(x⃗−μ⃗)=∥Σ−1/2(x⃗−μ⃗)∥d_M(\vec x) = \sqrt{(\vec x-\vec\mu)^{\top}\,\Sigma^{-1}(\vec x-\vec\mu)} = \bigl\lVert \Sigma^{-1/2}(\vec x-\vec\mu) \bigr\rVert

값이 하나뿐이라면 '평균에서 얼마나 먼가'는 표준편차로 잽니다. 평균보다 표준편차 세 개만큼 큰 키는 드물고, 반 개만큼 큰 키는 흔합니다. 값이 둘 이상이고 서로 상관되어 있으면 사정이 달라집니다. 아래 구름은 가로 표준편차 σx=\sigma_x = , 세로 표준편차 σy=\sigma_y = , 상관계수⁠(correlation coefficient)⁠ ρ=\rho = 인 정규분포⁠(normal distribution)⁠를 흉내 낸 점 240개입니다. 노란 점 A와 주황 점 B를 끌어 보세요.

흰검은 점이 평균입니다. 분홍 점선 원은 A와 유클리드 거리가 같은 점들, 청록 타원⁠(ellipse)⁠은 A와 마할라노비스 거리가 같은 점들, 흐린 타원은 마할라노비스 거리 1, 2, 3입니다.

처음 자리에서 A와 B는 평균에서 자로 잰 유클리드 거리가 , 같아서 분홍 원 위에 함께 있습니다. 그러나 A는 구름이 길게 뻗은 쪽에 있고, B는 점이 거의 없는 옆쪽에 있습니다. 마할라노비스 거리는 이 차이를 잽니다. A까지는 , B까지는 입니다. 청록 타원은 A와 마할라노비스 거리가 같은 점들이고, 구름의 모양을 그대로 닮았습니다.

숫자의 뜻은 '표준편차 몇 개만큼'입니다. 구름 240개 가운데 A보다 (마할라노비스 거리로) 먼 점은 , B보다 먼 점은 입니다. 2차원 정규분포라면 거리가 d보다 멀 확률⁠(probability)⁠은 정확히

P(dM>d)=e−d2/2P(d_M > d) = e^{-d^2/2}

이고(A는 , B는 ), 이 식은 가우스 적분⁠(Gaussian integral)⁠을 극좌표⁠(polar coordinates)⁠로 계산할 때와 똑같은 한 줄 적분⁠(integral)⁠에서 나옵니다. 그래서 B 같은 점은 '이상치'로 의심할 만합니다. 공장 센서 값이나 카드 결제처럼 여러 값이 함께 움직이는 자료에서 이상한 것을 찾을 때 쓰는 방법입니다.

계산에는 공분산 행렬 Σ\Sigma를 씁니다. 대각선에 각 좌표의 분산⁠(variance)⁠을, 나머지 칸에 두 좌표의 공분산(함께 평균 위아래로 움직이는 정도)을 적은 표로, 구름이 어느 방향으로 얼마나 퍼졌는지를 담고 있습니다. 마할라노비스 거리의 제곱은 평균에서 점까지의 차이 벡터⁠(vector)⁠ v⃗\vec v로 v⃗⊤Σ−1v⃗\vec v^\top \Sigma^{-1} \vec v, 곧 Σ\Sigma의 역행렬⁠(inverse matrix)⁠로 계산합니다. 그 뜻은 좌표를 보면 드러납니다. Σ−1/2\Sigma^{-1/2}라는 선형변환⁠(linear transformation)⁠을 걸면 비스듬한 구름이 모든 방향으로 분산이 1이고 상관이 0인 둥근 구름이 되고(백색화), 청록 타원은 원이 되며, 분홍 원이 오히려 찌그러집니다. 마할라노비스 거리는 바로 이 새 좌표에서 잰 유클리드 거리입니다. Σ−1/2\Sigma^{-1/2}는 좌표를 Σ\Sigma의 고유벡터⁠(eigenvector)⁠ 축으로 돌리고, 축마다 고유값⁠(eigenvalue)⁠의 제곱근으로 나눈 뒤, 다시 돌려놓는 행렬⁠(matrix)⁠입니다(대각화⁠, diagonalization⁠). 그 축은 주성분 분석⁠(principal component analysis)⁠의 축과 같습니다.

특별한 경우를 보면 익숙합니다. Σ\Sigma가 단위행렬⁠(identity matrix)⁠이면 보통의 유클리드 거리이고, 상관이 없으면(대각 행렬⁠, diagonal matrix⁠) 축마다 평균을 빼고 표준편차로 나눈 값, 곧 표준 점수⁠(standard score)⁠로 바꾼 뒤 잰 유클리드 거리입니다. Σ\Sigma가 역행렬을 가지는 한 이것은 삼각부등식(A에서 C로 곧장 가는 거리는 B를 거쳐 가는 거리보다 길 수 없다)까지 지키는 진짜 거리 함수⁠(metric)⁠라서, 최근접 이웃 분류⁠(k-nearest neighbors classification)⁠나 k-평균 군집⁠(k-means clustering)⁠에서 유클리드 거리 대신 쓸 수 있습니다. 인도의 통계학자 프라산타 찬드라 마할라노비스가 여러 집단의 신체 측정 자료를 비교하려고 1930년대에 내놓았고(흔히 1936년 논문으로 꼽습니다), 그는 콜카타(당시 캘커타)에 인도 통계⁠(statistics)⁠ 연구소를 세운 사람이기도 합니다.

이어지는 곳. 여러 변수를 함께 본 정규분포(다변량 정규분포⁠, multivariate normal distribution⁠)의 밀도는 e−dM2/2e^{-d_M^2/2}에 비례합니다(dMd_M은 평균까지의 마할라노비스 거리). 그래서 밀도가 같은 곳을 이은 등고선이 곧 마할라노비스 거리의 등고선입니다. 회귀에서 한 점이 직선을 얼마나 세게 끌어당기는지(지렛대 값⁠, leverage⁠)도 그 점의 x가 x들의 평균에서 가진 마할라노비스 거리로 정해집니다. x가 동떨어진 점일수록 직선을 제 쪽으로 세게 당깁니다. 차원이 d이면 Σ\Sigma에 분산 d개와 공분산⁠(covariance)⁠ d(d−1)/2개, 모두 d(d+1)/2개의 수를 자료에서 추정해야 해서, 차원이 높고 자료가 적으면 차원의 저주⁠(curse of dimensionality)⁠에 걸립니다.

이 개념이 나오는 긴 글

거리와 유사도 까마귀와 택시 까마귀는 곧장 날고 택시는 블록을 돌아간다. '얼마나 먼가'에는 답이 하나가 아니고, 어떤 거리를 고르느냐가 통계와 기계 학습의 답을 바꾼다.

이 개념을 언급하는 페이지

이 페이지가 가리키는 개념