데이터 분석 입문 선형대수 · LA05 코사인 유사도
가장 가까운 사람이 취향도 같을까?
좌표평면에 화살표로 그려 보면 보여요
개념데이터 한 줄 = 화살표
영화 두 편에 준 평점을 (영화1, 영화2) 좌표로 찍으면, 원점에서 그 점까지의 화살표가 돼요. 이게 벡터예요.
두 화살표 사이 각 가 작을수록 방향, 곧 취향이 비슷해요.
1이면 완전히 같은 방향, 0이면 직각(관계없음)
문제오늘의 한 문제
세 사람이 영화 2편에 준 평점이에요.
와 (가) 코사인 유사도가 가장 큰 사람, (나) 거리가 가장 가까운 사람은?
풀이각도와 거리를 따로 본다
- 1: 같은 직선 위, 각도 0 →
- 2, →
- 3거리: – , –
정답 ③ (가) C (나) B
개념 다시길이를 1로 맞추면?
화살표를 모두 길이 1로 줄이면(원 위로 옮기면) 와 는 같은 점이 돼요.
언제 무엇을?
취향·패턴 비교는 코사인 (추천, 문서 검색), 실제 크기 차이는 거리 (구매 금액, 센서 값)
from sklearn.metrics.pairwise import cosine_similarity웹에서만 · 자세한 해설
영상에서는 그림으로 감을 잡았어요. 여기서는 계산을 끝까지 하고, 데이터 분석에서 언제 무엇을 쓰는지 정리합니다.
두 가지 '가깝다'
| 기준 | 식 | 보는 것 |
| 거리 | |A-B| | 점과 점 사이의 길이 (크기까지 비교) |
| 코사인 유사도 | A·B / (|A||B|) | 화살표 사이의 각도 (방향만 비교) |
같은 데이터라도 무엇을 '비슷하다'고 볼지에 따라 답이 달라져요. 오늘 문제는 그 차이를 보여 주려고 만든 문제예요.
계산 끝까지
- 1길이: , ,
- 2와 : ,
- 3와 : ,
- 4거리: ,
- 5그래서 (가) 코사인은 , (나) 거리는 . 정답은 ③
왜 답이 갈릴까
예요. 방향은 똑같고 길이만 두 배예요. C는 A와 취향의 비율(영화1을 2배 더 좋아함)이 같지만, 평점을 전체적으로 후하게 주는 사람이에요.
코사인을 쓸 때
취향·패턴 비교. 추천 시스템(평점을 짜게 주는 사람과 후하게 주는 사람을 같은 기준으로 비교), 문서 검색(긴 글과 짧은 글을 공정하게 비교)
거리를 쓸 때
실제 크기 자체가 중요할 때. 구매 금액, 센서 값, 위치 좌표
파이썬으로 확인
import numpy as np
A, B, C = np.array([2, 1]), np.array([1, 2]), np.array([4, 2])
cos = lambda u, v: u @ v / (np.linalg.norm(u) * np.linalg.norm(v))
print(cos(A, B), cos(A, C)) # 0.8 1.0
print(np.linalg.norm(A - B), np.linalg.norm(A - C)) # 1.414 2.236확인 문제
과 코사인 유사도가 더 큰 쪽은 , 중 어느 것일까요? 거리가 더 가까운 쪽은요?
정답 보기
- 1 로 의 보다 커요 → 코사인은
- 2거리: , → 거리는
영상으로 다시 보기
같은 문제가 유튜브 쇼츠와 인스타그램에도 올라가요. 영상은 짧게, 웹은 자세하게.
같은 유형에서 자꾸 막히나요?
그 유형을 잘 아는 과외 선생님을 연결해 드립니다. 상담은 무료예요.
