R에서 코사인 유사성을 계산하는 방법
코사인 유사성은 내부 곱 공간의 두 벡터 간의 유사성을 측정한 것입니다.
두 벡터 A와 B의 경우 코사인 유사성은 다음과 같이 계산됩니다.
코사인 유사성 = ΣA i B i / (√ΣA i 2 √ΣB i 2 )
이 튜토리얼에서는 lsa 라이브러리의 cosine() 함수를 사용하여 R 벡터 간의 코사인 유사성을 계산하는 방법을 설명합니다.
R의 두 벡터 사이의 코사인 유사성
다음 코드는 R의 두 벡터 간의 코사인 유사성을 계산하는 방법을 보여줍니다.
library (lsa) #definevectors a <- c(23, 34, 44, 45, 42, 27, 33, 34) b <- c(17, 18, 22, 26, 26, 29, 31, 30) #calculate Cosine Similarity cosine(a, b) [,1] [1,] 0.965195
두 벡터 사이의 코사인 유사성은 0.965195 입니다.
R 행렬의 코사인 유사성
다음 코드는 벡터 행렬 간의 코사인 유사성을 계산하는 방법을 보여줍니다.
library (lsa) #define matrix a <- c(23, 34, 44, 45, 42, 27, 33, 34) b <- c(17, 18, 22, 26, 26, 29, 31, 30) c <- c(34, 35, 35, 36, 51, 29, 30, 31) data <- cbind(a, b, c) #calculate Cosine Similarity cosine(data) ABC a 1.0000000 0.9651950 0.9812406 b 0.9651950 1.0000000 0.9573478 c 0.9812406 0.9573478 1.0000000
결과를 해석하는 방법은 다음과 같습니다.
- 벡터 a 와 b 사이의 코사인 유사성은 0.9651950 입니다.
- 벡터 a 와 c 사이의 코사인 유사성은 0.9812406 입니다.
- 벡터 b 와 c 사이의 코사인 유사성은 0.9573478 입니다.
코멘트
1. cosine() 함수는 모든 크기의 정사각 행렬에서 작동합니다.
2. cosine() 함수는 행렬에서는 작동하지만 데이터 프레임에서는 작동하지 않습니다 . 그러나 as.matrix() 함수를 사용하면 R에서 데이터 프레임을 행렬로 쉽게 변환할 수 있습니다.
3. 코사인 유사성에 대해 자세히 알아보려면이 Wikipedia 페이지를 참조하세요.