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

결과를 해석하는 방법은 다음과 같습니다.

  • 벡터 ab 사이의 코사인 유사성은 0.9651950 입니다.
  • 벡터 ac 사이의 코사인 유사성은 0.9812406 입니다.
  • 벡터 bc 사이의 코사인 유사성은 0.9573478 입니다.

코멘트

1. cosine() 함수는 모든 크기의 정사각 행렬에서 작동합니다.

2. cosine() 함수는 행렬에서는 작동하지만 데이터 프레임에서는 작동하지 않습니다 . 그러나 as.matrix() 함수를 사용하면 R에서 데이터 프레임을 행렬로 쉽게 변환할 수 있습니다.

3. 코사인 유사성에 대해 자세히 알아보려면이 Wikipedia 페이지를 참조하세요.

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다