데이터 과학의 세계에서 Distance(거리)는 두 데이터 포인트 사이의 유사성이나 차이를 정량화하는 방법이다. 이는 다양한 알고리즘에서 중요한 역할을 하며, 특히 클러스터링이나 분류 같은 태스크에서 중심적인 개념이다. 이해하기 쉽게 설명하기 위해, 여러 거리 측정 방법을 하나씩 자세히 알아보도록 하겠다.
이 방법은 '일반적인' 거리를 나타내며, 두 점 사이의 가장 짧은 경로의 길이를 의미한다. 실생활에서 우리가 '거리'라고 생각하는 개념과 가장 일치하며, GPS에서 두 위치 사이의 거리를 계산하거나, 두 도시 사이의 직선 거리를 측정할 때 사용된다.
2. 맨해튼 거리 (Manhattan Distance)
맨해튼 거리는 '그리드' 형태의 시스템에서 두 점 사이의 거리를 측정할 때 유용하다. 예를 들어, 도시의 거리 구조와 같이 두 점 사이를 직접 잇는 대신, 그리드를 따라 이동해야 하는 경우에 사용된다. 따라서, 도시 내의 택시 요금 계산 등에 활용될 수 있다.
3. 코사인 거리 (Cosine Distance)
코사인 거리는 방향성에 초점을 맞춘다. 두 벡터 사이의 각도를 측정하여, 각도가 작을수록 두 벡터가 더 유사하다고 판단한다. 이 방법은 텍스트 문서 간의 유사도를 측정하거나, 사용자 기반 추천 시스템에서 사용자 간의 유사도를 평가하는 데 사용된다.
4. 민코프스키 거리 (Minkowski Distance)
민코프스키 거리는 다양한 거리 측정 방법을 포괄하는 개념이다. 특정한 'm' 값에 따라, 유클리디안 거리나 맨해튼 거리와 같은 다른 유형의 거리로 표현될 수 있다. 이러한 유연성 때문에, 이 방법은 다양한 분야에서 특정한 요구 사항에 맞게 거리를 측정하는 데 활용된다.
5. 체비셰프 거리 (Chebyshev Distance)
체비셰프 거리는 두 점 사이의 거리를 각 차원에서의 최대 차이로 정의한다. 이 방법은 체스에서의 킹의 이동 거리를 계산하거나, 컴퓨터 그래픽에서 픽셀 간의 거리를 계산하는 데 사용된다.
6. 레벤슈타인 거리 (Levenshtein Distance)
레벤슈타인 거리는 문자열 간의 유사도를 측정하기 위해 사용된다. 이 방법은 한 문자열에서 다른 문자열로 변환하기 위해 필요한 최소한의 수정(삽입, 삭제, 교체) 수를 계산한다. 이는 철자 검사, DNA 시퀀싱, 텍스트 마이닝 등에서 유용하게 사용된다.
7. 마할라노비스 거리 (Mahalanobis Distance)
마할라노비스 거리는 변수 간의 상관 관계와 각 변수의 척도를 고려한 거리 측정 방법이다. 이 방법은 다변량 데이터를 다루는 경우, 특히 이상치 탐지나 데이터 클러스터링에서 유용하게 사용된다. 데이터의 분포를 고려하기 때문에, 일반적인 유클리디안 거리보다 데이터의 내재된 구조를 더 잘 반영할 수 있다.
마치며
이번편에서는 Clustering를 위한 Distance의 개념들에 대해서 간략하게 살펴보았다. 다음편부터는 본격적으로 Clustering를 위한 알고리즘에 대해서 알아보도록 하겠다.