위키득계정 ↗
과학

마할라노비스 거리

마할라노비스 거리과학
영문명
Mahalanobis distance
필요한 정보
공분산 행렬의 역행렬
반영하는 성질
성분별 변동과 상관관계
기본 전제
가역인 양의 정부호 공분산 행렬
마할라노비스 거리는 공분산 행렬을 이용해 좌표의 변동 규모와 상관관계를 반영하는 거리다. 보통 양의 정부호 공분산 행렬을 전제로 하며, 역행렬로 조정한 두 벡터의 차이를 계산한다.

단순한 좌표 차이에서 더 나아가기

유클리드 거리는 각 좌표 차이의 제곱을 더한다. 마할라노비스 거리는 차이 벡터에 공분산 역행렬을 적용한 이차형식의 제곱근을 쓴다. 따라서 같은 좌표 차이도 기준으로 삼은 분포의 변동 구조에 따라 다르게 평가될 수 있다.

대각행렬로 계산하는 예

두 좌표의 공분산 행렬이 대각성분 4와 1을 갖고 나머지가 0이라고 하자. 차이 벡터가 (2, 1)이면 거리의 제곱은 2²/4+1²/1=2다. 첫 좌표에서 2만큼 차이 나는 것은 그 좌표의 표준편차인 2를 기준으로 한 단위에 해당한다.

상관관계가 있으면 달라지는 방향

공분산의 비대각 성분은 좌표 사이의 관계를 나타낸다. 이를 포함한 역행렬을 쓰면 각 좌표를 따로 표준화하는 경우와 결과가 달라질 수 있다. 어떤 방향으로 함께 변하는 것이 흔한지까지 반영한다는 점이 핵심이다.

행렬을 정하는 문제

공분산 행렬이 특이면 기본 정의에서 필요한 역행렬이 존재하지 않는다. 차원이 높거나 데이터에 중복된 특징이 있으면 이런 문제를 살펴야 한다. 또한 SciPy 함수는 공분산 자체가 아니라 그 역행렬을 받으므로 입력 행렬의 의미를 혼동하지 않아야 한다.

관련 문서

공분산 / 행렬 / 역행렬 / 유클리드 거리 / 벡터 / 코사인 유사도