유사도 : 상관계수와 코사인 :: 추천 시스템: 원리와 구현 - mindscale
Skip to content

유사도 : 상관계수와 코사인

코사인 유사도를 구하기 위한 lsa 패키지 설치

install.packages('lsa')
library(lsa)

예제 데이터 생성하기

ex <- matrix(c(3,4,5,
               1,2,3,
               1,4,7,
               3,4,5), byrow = T, nrow=4)
rownames(ex) <- c('u1', 'u2', 'u3', 'u4')
colnames(ex) <- c('i1', 'i2', 'i3')
ex

아이템별이 아닌 사용자별로 유사도를 구하기 위해 매트릭스의 행과 열을 바꾸기

ex <- t(ex)

사용자별 상관 계수 구하기

cor(ex)

사용자별 코사인 구하기

cosine(ex)

사용자 별로 자신의 평균 점수를 뺀 데이터 생성하기

ex2 <- ex
ex2[,1] <- ex2[,1] - 4
ex2[,2] <- ex2[,2] - 2
ex2[,3] <- ex2[,3] - 4
ex2[,4] <- ex2[,4] - 4

사용자별 상관 계수 구하기

cor(ex2)

사용자별 코사인 구하기

cosine(ex2)

사용자 별로 자신의 점수를 표준화한 데이터 생성하기

ex3 <- ex
ex3[,1] <- scale(ex3[,1])
ex3[,2] <- scale(ex3[,2])
ex3[,3] <- scale(ex3[,3])
ex3[,4] <- scale(ex3[,4])

사용자별 상관 계수 구하기

cor(ex3)

사용자별 코사인 구하기

cosine(ex3)

더 읽을 거리

협업필터링에서의 유사도 : 코사인 VS 상관계수