MCP로 연결 →

계산 입력

공식

광고

결과

코사인 유사도
0.974632
범위 −1 ~ 1
내적 (a·b) 32
|A| (크기) 3.741657
|B| (크기) 8.774964
각도 (도) 12.9332°
각도 (라디안) 0.225726

코사인 유사도란?

코사인 유사도는 두 벡터가 얼마나 비슷한 방향을 가리키는지를 나타내는 지표입니다. 두 벡터 사이 각도의 코사인 값으로, −1(정반대 방향)부터 0(수직)을 거쳐 1(완전히 같은 방향)까지의 범위를 가집니다. 벡터의 크기와 상관없이 방향만으로 결정되기 때문에, 머신러닝·텍스트 마이닝·추천 시스템 등에서 문서, 임베딩, 특징 벡터를 비교할 때 폭넓게 활용됩니다.

공통 원점에서 뻗은 두 벡터와 그 사이의 각도 세타
코사인 유사도는 두 벡터의 길이가 아니라 사이각 \(\theta\)를 측정합니다.

계산기 사용 방법

벡터 A와 벡터 B의 x, y 성분, 그리고 (선택적으로) z 성분을 입력하세요. 2차원으로 계산하려면 z 칸을 비워 두거나 0으로 두면 됩니다. 계산기는 코사인 유사도와 함께 내적, 각 벡터의 크기, 두 벡터 사이의 각도를 도(degree)와 라디안(radian) 단위로 모두 보여 줍니다.

공식 살펴보기

내적은 각 성분끼리 곱한 값을 모두 더한 것입니다: $$\vec{A}\cdot\vec{B} = \text{A}_x\,\text{B}_x + \text{A}_y\,\text{B}_y + \text{A}_z\,\text{B}_z$$. 벡터의 크기는 각 성분을 제곱해 더한 뒤 제곱근을 취한 값입니다: $$\lVert\vec{A}\rVert = \sqrt{\text{A}_x^{2} + \text{A}_y^{2} + \text{A}_z^{2}}$$. 내적을 두 벡터 크기의 곱으로 나누면 결과가 −1에서 1 사이로 정규화되며, 이것이 바로 두 벡터 사잇각 \(\theta\)의 코사인 값입니다:

$$\cos\theta = \frac{\vec{A}\cdot\vec{B}}{\lVert\vec{A}\rVert\,\lVert\vec{B}\rVert}$$

여기에 역코사인(arccos)을 취하면 각도 자체를 구할 수 있습니다.

광고
마이너스 1에서 1까지 코사인 유사도 범위를 보여주는 수직선
코사인 유사도는 -1(반대 방향)에서 0(직교)을 거쳐 1(같은 방향)까지의 값을 가집니다.

예제 풀이

A = (1, 2, 3), B = (4, 5, 6)을 예로 들어 보겠습니다. 내적은 $$1\cdot 4 + 2\cdot 5 + 3\cdot 6 = 4 + 10 + 18 = 32$$입니다. 각 벡터의 크기는 \(\lVert\vec{A}\rVert = \sqrt{1+4+9} = \sqrt{14} \approx 3.7417\), \(\lVert\vec{B}\rVert = \sqrt{16+25+36} = \sqrt{77} \approx 8.7750\)입니다. 따라서 $$\cos\theta = \frac{32}{3.7417 \times 8.7750} \approx 0.9746$$이며, 이는 약 12.93°의 각도에 해당합니다.

자주 묻는 질문

코사인 유사도가 0이면 무슨 의미인가요? 두 벡터가 직교(수직)한다는 뜻으로, 90° 각도를 이루며 방향적 유사성이 전혀 없음을 나타냅니다.

결과가 음수가 될 수도 있나요? 그렇습니다. 음수 값은 두 벡터가 대체로 반대 방향을 가리킨다는 의미이며, −1은 정확히 정반대(반평행) 방향임을 뜻합니다.

유클리드 거리와는 어떻게 다른가요? 코사인 유사도는 크기를 무시하고 방향만 비교하는 반면, 유클리드 거리는 두 벡터 끝점 사이의 직선 거리를 측정합니다.

최종 업데이트: