예제 및 참고자료

RDD 기반의 API 사용

import 및 dataSet 확인 dataSet

buildArtistByID 함수 buildArtistByID

buildArtistAlias 함수 buildArtistAlias

preparation 함수 preparation

preparation 실행결과 exec_preparation

buildRatings 함수 buildRatings

unpersist 함수 unpersist

model - 1 함수 model1

model - 2 함수 model2

model 실행결과 exec_model

ROC

ROC에서 y=x그래프는 Random Guess를 의미하며 y값이 커질수록 better값을 y값이 작아질수록 worst값을 의미한다. 평면에서의 한 점의 좌표 x에 대해 (0,0) 일수록 보수적이며 (1,1)에 가까울수록 모험적인 의미를 나타낸다.

AUC

AUC은 무작위로 선택한 좋은(good) 추천이 무작위로 선택한 나쁜(bad) 추보다 상위에 오를 확률이다. 또한 ROC curve의 밑면적을 계산한 값으로써 AUC=1.0에 가까울수록 가장 좋은 선택에 해당한다.

AUC - 1 함수 auc1

AUC - 2 함수 auc2

AUC - 3 함수 auc3

predictMostListened 함수 predictMostListened

evaluate 함수 evaluate

evaluate 실행결과 exec_evaluate

위의 결과에서 rank는 50, lambda는 1.0, alpha를 40으로 하였을때가 가장 추천 결과가 좋았다. 
이와 같이 하이퍼 파라미터를 변경하여 추천 모델을 튜닝을 할 수 있다.
추가적으로 과도한 하이퍼 파라미터 설정은 오히려 성능 저하를 가져올 수 있으니
적절하게 사용하는게 좋다.

recommend 함수 recommend

recommend 실행결과 exec_recommend

사용자ID(2093760)에게 5가지의 아티스트를 추천해주었는데 그중에 [unknown]의 데이터가 속해있다.
해당 데이터는 유용한 데이터가 아니므로 제거 후 다시 위의 과정을 실행한다.
데이터 분석시 이러한 경우는 비일비재 하며 이런 과정을 통해 가치 없는 데이터를 필터링을 하는게 중요하다.

SoftWare Developer

IT 기술 정리 및 공유를 위한 블로그 입니다.