입력 데이터 규칙 : 사용자ID(정수, Long), 아이템ID(정수, Long), 선호수치(큰 값일수록 선호도가 높은 실수, 일반적으로 0~5사이의 값을 많이 사용, float)
선호수치 데이터가 없을 경우 Boolean Preference를 이용하여 분석 가능
유사도 모델 생성(유사도는 -1 ~ 1의 범위를 가지며 1과 가까울 수록 서로 유사하다는 의미)
유사도 모델 알고리즘 종류(더있음 대표적인것만)
피어슨 상관관계 알고리즘 : PearsonCorrelationSimilarity
유클리드 거리 알고리즘 : EuclideanDistanceSimilarity
스피어만 상관관계 알고리즘 : SpearmanCorrelationSimilarity
맨하튼 거리 알고리즘 : CityBlockSimilarity
사용자 기반 유사도 모델
사용자 기반 유사도 모델 생성
param : DataModel, (가중치)
return : UserSimilarity
유사한 이웃 그룹 생성
고정 크기 이웃 : NearestNUserNeighborhood
param : 이웃의수, UserSimilarity, DataModel
return : UserNeighborhood
임계치 기반 이웃 : ThresholdUserNeighborhood
param : 임계치, UserSimilarity, DataModel
return : UserNeighborhood
아이템 기반 유사도 모델
User-based recommenders are the “original”, conventional style of recommender systems. They can produce good recommendations when tweaked properly; they are not necessarily the fastest recommender systems and are thus suitable for small data sets (roughly, less than ten million ratings). We’ll start with an example of this.
아이템 기반 유사도 모델은 상대적으로 시간에 따른 변동폭이 크지 않기 때문에, 주기적으로 미리 계산해 처리해 놓음
댓글