
13번 코사인 유사도 는 유사도(높을수록 비슷). 거리 지표가 필요할 땐 단순히 1에서 빼면 됩니다:
범위:
0 (완전히 가까움)12KNN·클러스터링에서 방향 기반 유사도가 필요할 때. 텍스트 임베딩(TF-IDF, word2vec)과 문서 검색이 대표 사례 — 문서 길이와 무관하게 "주제" 만 비교.
주의: 코사인 거리는 참 거리 메트릭이 아님 (삼각부등식을 만족하지 않을 수 있음). 진짜 메트릭이 필요하면 angular distance =
arccos(cos) / π를 씀.
함수 cosine_distance(x, y) 를 완성하세요.
float, 범위 [0, 2].1 - cos(x, y) 혹은 직접 수식.| # | 이름 | x | y | 기대 |
|---|---|---|---|---|
| 1 | 같은 벡터 | [1, 2, 3] | [1, 2, 3] | 0.0 |
| 2 | 스케일 불변 | [1, 0] | [5, 0] | 0.0 |
| 3 | 직교 → 1 | [1, 0] | [0, 1] | 1.0 |
| 4 | 반대 방향 → 2 | [1, 2] | [-1, -2] | 2.0 |
| 5 | 45° | [1, 1] | [1, 0] | 1 - 1/√2 ≈ 0.293 |
코드를 작성하고 Run 을 눌러보세요.