June
11th,
2017
예제 및 참고자료
RDD 기반의 API 사용
import 및 dataSet 확인
buildArtistByID 함수
buildArtistAlias 함수
preparation 함수
preparation 실행결과
buildRatings 함수
unpersist 함수
model - 1 함수
model - 2 함수
model 실행결과
ROC
ROC에서 y=x그래프는 Random Guess를 의미하며 y값이 커질수록 better값을 y값이 작아질수록 worst값을 의미한다.
평면에서의 한 점의 좌표 x에 대해 (0,0) 일수록 보수적이며 (1,1)에 가까울수록 모험적인 의미를 나타낸다.
- en(위키피디아) - ROC(Receiver operating characteristics)
- ko(위키피디아) - ROC(Receiver operating characteristics)
AUC
AUC은 무작위로 선택한 좋은(good) 추천이 무작위로 선택한 나쁜(bad) 추보다 상위에 오를 확률이다.
또한 ROC curve의 밑면적을 계산한 값으로써 AUC=1.0에 가까울수록 가장 좋은 선택에 해당한다.
AUC - 1 함수
AUC - 2 함수
AUC - 3 함수
predictMostListened 함수
evaluate 함수
evaluate 실행결과
위의 결과에서 rank는 50, lambda는 1.0, alpha를 40으로 하였을때가 가장 추천 결과가 좋았다. 이와 같이 하이퍼 파라미터를 변경하여 추천 모델을 튜닝을 할 수 있다. 추가적으로 과도한 하이퍼 파라미터 설정은 오히려 성능 저하를 가져올 수 있으니 적절하게 사용하는게 좋다.
recommend 함수
recommend 실행결과
사용자ID(2093760)에게 5가지의 아티스트를 추천해주었는데 그중에 [unknown]의 데이터가 속해있다. 해당 데이터는 유용한 데이터가 아니므로 제거 후 다시 위의 과정을 실행한다. 데이터 분석시 이러한 경우는 비일비재 하며 이런 과정을 통해 가치 없는 데이터를 필터링을 하는게 중요하다.