History
home
BDA 연혁
home

- 데이터 거리 측정 방법(1)

데이터 거리 측정

데이터 분석에서 데이터 간의 거리 측정은 매우 중요하다. 이는 다양한 데이터 포인트들 사이의 유사성이나 차이를 정량화하는 객관적인 지표이다. 데이터간의 거리를 기반으로 다음과 같은 패턴 인식, 군집화, 분류 등의 다양한 데이터 분석 작업등을 해볼 수 있다.
1.
군집화(Clustering): 군집화 알고리즘(예: K-평균)은 데이터 포인트들 사이의 거리를 기반으로 유사한 데이터를 그룹화한다.
2.
분류(Classification): 분류 알고리즘에서, 특히 k-최근접 이웃(K-NN)과 같은 알고리즘에서 데이터 간 거리는 새로운 데이터 포인트가 어떤 범주에 속하는지 결정하는 데 사용된다.
3.
이상치 탐지(Outlier Detection): 데이터 포인트들 사이의 거리를 분석하여 표준 데이터 패턴에서 벗어나는 이상치를 탐지할 수 있다.
4.
차원 축소(Dimensionality Reduction): PCA(주성분 분석)와 같은 기법에서 거리 측정은 데이터의 분산을 보존하는 새로운 축을 찾는데 중요하다.
데이터의 타입이나, 해당 데이터가 가지고 있는 정보에 따라 다양한 거리 측정방법들이 존재한다. 다양한 거리 측정방법들을 익혀보고, 주어진 데이터의 특징마다 어떠한 거리 측정 방법이 좋을지 생각해보자.
pp개의 피쳐를 가진 데이터셋 X\mathbf{X}에서 뽑은 두 개의 데이터 샘플 x,y\mathbf{x},\mathbf{y}은 다음과 같이 나타내보자.
x=(x1,...,xp)T, y=(y1,...yp)T\mathbf{x} = (x_1,...,x_p)^T, \ \mathbf{y} = (y_1,...y_p)^T

1. 맨해튼 거리(L1 distance)

맨해튼 거리는 두 데이터 간의 차의 절대값이다. 즉 두 점 사이의, 수평 또는 수직 이동 거리의 합이므로 대각선 방향으로의 거리는 고려하지 않는다. 따라서 실제 도로나, 격자 형태의 구조를 가진 데이터간의 거리를 정확하게 나타낼 수 있다.
d(x,y)=i=1pxiyid(\mathbf{x},\mathbf{y}) = \sum_{i=1}^p | x_i - y_i |

2. 유클리드 거리(L2 distance)

유클리드 거리는 두 데이터 간의 직선 거리이다.
d(x,y)=i=1p(xiyi)2d(\mathbf{x},\mathbf{y}) = \sqrt {\sum_{i=1}^p ( x_i - y_i )^2}
유클리드 거리는 맨해튼 거리에 비해 계산이 복잡하지만, 우리에게 더 직관적인 거리 개념을 제공한다.

3. 민코프스키 거리(Minkowsk distance, Lp distance)

민코프스키 거리는 맨하탄 거리와 유클리드 거리를 일반화한 거리이다.
d(x,y)=[i=1p(xiyi)p]1pd(\mathbf{x},\mathbf{y}) = [ {\sum_{i=1}^p ( x_i - y_i )^{\mathbf{p}}}]^{\frac{1}{\mathbf{p}}}
p=1\mathbf{p}=1일 경우 맨해튼 거리이고, p=2\mathbf{p}=2일 경우 유클리드 거리, p=\mathbf{p}=\infin일 경우 체비셰프 거리(Chebyshev distance)이다.

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

마할라노비스 거리는 각 변수의 분산과 상관성을 함께 고려한 거리이다. X\mathbf{X}의 공분산 행렬을 SS라고 할 때, 다음과 같이 구할 수 있다.
d(x,y)2=(xy)TS1(xy)d(\mathbf{x},\mathbf{y})^2 = (\mathbf{x}-\mathbf{y})^TS^{-1}(\mathbf{x}-\mathbf{y})
마할라노비스 거리는 다변량 데이터에 특히 유용하며, 변수들 간의 스케일 차이나 상관관계가 있을 때 일반적인 거리 측정 방법보다 더 정확한 거리 측정을 제공한다.

5. 코사인 유사도 (Cosine similarity)

코사인 유사도는 두 샘플의 각도의 코사인 값을 구하는 것이다. 코사인 값이 0인 경우, 두 벡터가 이루는 방향은 같거나 반대임을 알 수 있다.
Cosine Similarity(x,y)=xyxy\text{Cosine Similarity}(\mathbf{x},\mathbf{y}) = \frac{\mathbf{x} \cdot \mathbf{y}}{\| \mathbf{x} \| \|\mathbf{y} \|}
즉, 두 데이터의 크기는 고려하지 않고 단지 방향만 고려하는 방법이다. 주로 텍스트 데이터, 추천시스템, 고차원 데이터를 다루는데 사용된다.