코사인 유사도(Cosine Similarity) 개념

40 P
QUESTION 07 #353
방향성만으로 닮음을 측정하는 코사인 유사도 원리입니다. 두 벡터의 내적을 이용해 유사도를 구하는 빈칸을 완성하세요.
main.py
import numpy as np
from sklearn.metrics.pairwise import cosine_similarity

# 사용자 A와 B의 영화 선호도 벡터
user_a = np.array([[5, 4, 1]]) # 영화 1, 2, 3에 대한 별점
user_b = np.array([[4, 5, 0]])

# 코사인 유사도 계산
similarity = (user_a, user_b)

print(f"두 사용자의 취향 유사도: {similarity[0][0]:.2f}")
# 결과가 에 가까울수록 두 벡터의 방향이 일치하는 닮은꼴입니다.
실행 결과 예시
cosine_similarity, 1
INTERACTIVE SHELL Shift + Enter 로 즉시 실행

📐 각도로 측정하는 닮음: 코사인 유사도

단순한 거리가 아니라 "취향의 방향"이 비슷한지 궁금할 때 코사인 유사도를 사용합니다.

  • 특징: 데이터의 크기가 중요하지 않습니다. 예를 들어 영화를 100번 본 사람과 10번 본 사람이라도, 선호하는 장르의 비율이 같다면 코사인 유사도는 높게 나옵니다.
  • 활용: 넷플릭스 영화 추천, 문장의 의미적 유사도 분석(NLP) 등에서 핵심적으로 사용됩니다.

데이터의 절대적 수치가 아닌 패턴의 유사성을 찾는 가장 세련된 방법 중 하나입니다.