일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | ||
6 | 7 | 8 | 9 | 10 | 11 | 12 |
13 | 14 | 15 | 16 | 17 | 18 | 19 |
20 | 21 | 22 | 23 | 24 | 25 | 26 |
27 | 28 | 29 | 30 |
Tags
- 25년 3월 증시 분석
- 딥러닝
- css 리스크관리
- Python Numpy
- 연체 css
- 트럼프 미국 관세
- 주식 데이터 수집
- python pandas
- 미장 분석
- 미국 투자 분석
- 미국 증시 분석
- jupyter notebook PDF
- 25년 3월 12일 미국 증시 분석
- 25년 3월 11일 미국 증시 분석
- css 리스크
- Cudnn 버전 확인
- 연체용어
- 관세 설명
- 스코어카드 예시
- 25년 3월 미국 증시 분석
- 2025년도 미국 관세
- 취업사이트 정리
- css risk
- 트럼프 2025년 미국 관세
- 2025년 3월 6일 미국 증시 분석
- 스코어카드 만드는법
- 코딩 사이트 정리
- 미국 시황
- 딥러닝 제대로 시작하기
- 미국 증시 방향성
Archives
- Today
- Total
koos808
코사인 유사도(cosine similarity) + python 코드 본문
728x90
반응형
* 벡터간의 유사도를 측정할 수 있는 대표적인 방법은 유클리디안 거리와 같은 거리 계산 방법말고도 코사인 유사도가 있습니다. 추천시스템에서 많이 쓰이는 코사인 유사도의 수식과 구현 코드에 대해서 알아보겠습니다.
* 코사인 유사도 : 코사인 유사도(― 類似度, 영어: cosine similarity)는 내적공간의 두 벡터간 각도의 코사인값을 이용하여 측정된 벡터간의 유사한 정도를 의미합니다.
* 두 벡터의 코사인값은 유클리디안 스칼라곱 공식에서 유도할 수 있습니다.

속성 A, B의 벡터값이 각각 주어졌을 때, 코사인 유사도 cos(θ)는 벡터의 스칼라곱과 크기로 다음과 같이 표현할 수 있습니다.

* cosθ의 θ가 1에 가까울 수록 "방향"(거리는 고려 X)을 기준으로 두 개의 벡터가 유사하다고 볼 수 있습니다.
아래 코사인 유사도와 코사인 거리는 다르므로 주의하셔서 계산 및 사용해야 합니다.
* 코사인 유사도 = cosθ
<-> 코사인 거리 = 1 - cosθ
※ Numpy를 이용해 코사인 유사도 구하기
# import
from numpy import dot
from numpy.linalg import norm
import numpy as np
# 코사인 유사도 함수
def cos_sim(A, B):
return dot(A, B)/(norm(A)*norm(B))
# data
doc1=np.array([0,1,1,1])
doc2=np.array([1,0,1,1])
doc3=np.array([2,0,2,2])
print(cos_sim(doc1, doc2)) #문서1과 문서2의 코사인 유사도
print(cos_sim(doc1, doc3)) #문서1과 문서3의 코사인 유사도
print(cos_sim(doc2, doc3)) #문서2과 문서3의 코사인 유사도
# 결과
# 0.67
#0.67
#1.00
※ 코드 참고 : wikidocs.net/24603
위 사이트 자료를 참고하시면 더 다양한 사례와 코드를 확인하실 수 있습니다.
728x90
반응형
'Statistics' 카테고리의 다른 글
Precision과 Recall (0) | 2020.09.28 |
---|---|
성능평가지표, 모델 평가 방법 Python Code (0) | 2020.09.28 |
배깅(Bagging)과 부스팅(Boosting) (0) | 2020.07.05 |
1종 오류와 2종 오류 (0) | 2020.07.05 |
P-value 정의와 이해 (0) | 2020.07.05 |