유사도 측정을 위한 함수
Similarity Metrics
Euclidean Distance 유클리디안 거리
두 개의 실수값을 갖는 벡터간의 평면 위에서의 거리로 \(\mathrm{x}=(x_1, x_2,\ldots,x_n)\)과 \(\mathrm{y}=(y_1, y_2, \ldots, y_n)\)의 유클리디안 거리 \(\overline{\mathrm{xy}}\)는 다음과 같이 계산한다.
\begin{eqnarray} \overline{\mathrm{xy}} &=& \sqrt{(x_1-y_1)^2 + (x_2 - y_2)^2 + \cdots + (x_n-y_n)^2} \\ &=&\sqrt{\sum_{i=1}^n(x_i-y_i)^2}\end{eqnarray}
- 거리 계산을 할 때에는 각 요소들의 단위를 고려해야 한다. 각 요소별 단위 차이가 크다면 거리에 큰 영향을 줄 수 있다. 예를 들어, \(\mathrm{x}=(25, 54000, 700)\)과 \(\mathrm{y}=(35, 76000, 540)\)인 경우에는 두 번째 요소가 거리에 큰 영향을 주지만 \(\mathrm{x}=(25, 54, 700)\)과 \(\mathrm{y}=(35, 76, 540)\)인 경우는 세 요소 모두 거리에 영향을 준다.
Cosine Similarity 코사인 유사도
\begin{eqnarray}\cos (\mathrm{x}, \mathrm{y}) = \frac{\mathrm{x}\cdot \mathrm{y}}{\parallel \mathrm{x}\parallel \parallel \mathrm{y}\parallel} \end{eqnarray}
- \(-1 \leqq \cos (\mathrm{x}, \mathrm{y}) \leqq 1\)의 범위를 가지며 \(\cos (\mathrm{x}, \mathrm{y})=1\)이면 \(\mathrm{x}\)와 \(\mathrm{y}\)는 동일하며, \(\cos (\mathrm{x}, \mathrm{y})=-1\)이면 \(\mathrm{x}$와 $\mathrm{y}\)는 완전히 반대임을 의미하고, \(\cos (\mathrm{x}, \mathrm{y})=0\)이면 \(\mathrm{x}\)와 \(\mathrm{y}\)는 서로 독립임을 의미한다.
Jaccard Distance 자커드 거리
객체 집합, 예를 들어 \(\mathrm{A} = \{\mathrm{사과}, \mathrm{배}, \mathrm{감}, \mathrm{바나나}, \ldots\}\)와 \(\mathrm{B} = \{\mathrm{사과}, \mathrm{멜론}, \mathrm{감}, \mathrm{포도}, \ldots\}\) 사이의 거리로 두 집합이 얼마나 유사한지는 다음과 같이 계산한다.
\begin{eqnarray} J(\mathrm{A}, \mathrm{B}) = \frac{\lvert \mathrm{A} \cap \mathrm{B}\rvert}{\lvert \mathrm{A} \cup \mathrm{B}\rvert}\end{eqnarray}
Mahalanobis Distance 마할라노비스 거리
- 두 개의 실수 벡터 간에 사용하며 유클리드 거리에 비해 단위와 무관하며 상관을 고려할 수 있는 장점있는 척도로 \(S\)가 \(\mathrm{x}\)와 \(\mathrm{y}\)의 공분산 행렬(covariance matrix)일 때 다음과 같이 계산한다.
\begin{eqnarray} d(\mathrm{x}, \mathrm{y}) = \sqrt{(\mathrm{x} - \mathrm{y})^T S^{-1}(\mathrm{x}-\mathrm{y})}\end{eqnarray}
Hamming Distance 해밍 거리
Manhattan Distance 맨해튼 거리
\begin{eqnarray} d(\mathrm{x}, \mathrm{y}) = \sum_i^n \vert x_i - y_i \rvert \end{eqnarray}
- 격자모양 형태의 맨해튼 도심의 두 점 사이의 거리를 상상해보세요.