일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
Tags
- python image load
- SQL NULL값 처리
- linux 폴더 용량 확인
- ORACLE SQL NVL
- 신용평가 부정사용 평점
- 파이썬 이미지 불러오기
- 신용평가 Fraud
- 딥러닝 제대로 시작하기
- 주피터노트북 테마 변경
- 주식 데이터 수집
- jupyter notebook PDF
- python image list
- 행동평점
- ORACLE 상위 N개 추출
- jupyter notebook 테마 변경
- ORACLE NULL값 처리
- CSS Fraud Score
- Python Numpy
- 신청평점
- 파이썬 테마
- Cudnn 버전 확인
- 파이썬 이미지 라벨 저장
- python pandas
- SQL NVL
- ORACLE 상위 행 추출
- 리눅스 저장 용량 확인
- linux 폴더 크기 확인
- 파이썬 이미지 리스트 변환
- 딥러닝
- 회수모형
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 |
Comments