
앞서 13번에서 두 벡터 사이의 코사인을 구했죠. 실전에선 한 쌍이 아니라 수많은 쌍 을 한 번에 비교합니다 — 문서 간 유사도, 임베딩 검색, KNN 등.
두 행렬 (shape (N, D)), (shape (M, D)) 가 주어지면 결과는 (N, M) 유사도 행렬.
각 행을 단위 벡터로 먼저 정규화 해두면 그 뒤엔 그냥 행렬 곱:
함수 cosine_matrix(X, Y) 를 완성하세요.
(N, M) NumPy 배열. 각 값은 [-1, 1].np.linalg.norm(X, axis=1, keepdims=True) 로 행별 norm.| # | 이름 | 검증 |
|---|---|---|
| 1 | shape | X (3,4), Y (5,4) → (3,5) |
| 2 | 자기자신 → 대각선 1 | X=Y 일 때 diag ≈ 1 |
| 3 | 값 범위 | 모든 성분이 [-1, 1] 안 |
| 4 | 반대 방향 쌍 | 직접 설정한 반대 벡터는 -1 |
| 5 | 루프 없이 | for/while 금지 |
코드를 작성하고 Run 을 눌러보세요.