-
추천 시스템 패키지 - SurprisePython Machine Learning/추천 시스템 2021. 1. 21. 11:26
1. Surprise란 ?
- 파이썬 기반에서 사용하는 유사한 api와 프레임워크를 제공하는 추천 시스템 구축을 위한 전용 패키지
2. 장점
- 사용자, 아이템 기반 최근접 이웃 협업 필터링, SVD, SVD++등과 같은 다양한 추천 알고리즘들을 쉽게 적용해 추천 시스템 구축이 가능
- 사이킷런의 핵심 API와 유사한 API
3. 데이터 SET
- MovieLens 데이터 세트 ml-100k
4. 데이터 로딩
데이터 로딩 및 학습 데이터 세트와 테스트 데이터 세트로 분리 데이터를 내려받으면 로컬 디렉터리에 저장되며 데이터를 호출하면 사이트에 접속하지 않고 데이터세트를 로딩 # ' ml-100k 데이터 세트는 이전 데이터 세트와 다르게 칼럼 분리 문자가 탭( \t )문자
# Surprise 자체적으로 로우 레벨의 데이터를 칼럼 레벌의 데이터로 변경하므로 사용자-아이템 평점 데이터 적용할 때 내려받은 데이터 파일과 동일하게 로우 레벨의 사용자-아이템 평점 데이터를 그대로 적용해야함.
추천 행렬 분해 알고리즘으로 SVD객체를 생성하고 학습 데이터 세트 기반으로 추천 알고리즘 학습수행 Surprise에서 추천을 예측하는 메서드
- test( ) : 입력된 데이터 세트에 대해 추천 데이터 세트를 생성
- predict( ) : 개별 사용자와 영화에 대한 추천 평점을 반환
5. test( )
test( ) 메서드 실행 결과 - test( 데이터세트 ) 호출 결과는 파이썬 리스트 형태, 크기는 25,000개, 호출 결과로 반환된 리스트 객체는
25,000개의 Prediction 객체를 가지고 있음.
( Prediction 객체는 Surprise 패키지에서 제공하는 데이터 타입으로, 사용자 Id, 영화, 실제 평점
정보에 기반해 Surprise의 추천 예측 평점데이터를 튜플 형태로 가지고 있음 )
- was impossible이 True라면 예측값을 생성할 수 없는 데이터라는 의미.
- 객체명.uid 형식으로 속성의 접근
- 사용자 Id ( uid ), 영화 Id( iid ), 실제 평점( r_ui ), 추천 예측 평점( est )
6. predict( )
사용자 아이디, 아이템 아이디는 문자열로 입력 - 개별 사용자와 아이템 정보를 입력하면 추천 예측 평점을 반환
-> test( )는 데이터 세트의 모든 사용자와 아이템 아디에 대해서 predict( )를 반복적으로 수행한 결과
Prediction의 리스트 객체를 기반으로 RMSE 평가 - Surprise 패키지를 이용해 추천 시스템을 쉽게 구현 가능.
'Python Machine Learning > 추천 시스템' 카테고리의 다른 글
Surprise를 이용한 개인화 영화 추천 시스템 구축 (0) 2021.01.22 Surprise 주요 모듈 (0) 2021.01.21 아이템 기반 최근접 이웃 협업 필터링 추천 시스템 실습 (0) 2021.01.20 콘텐츠 기반 추천 시스템 실습 (0) 2021.01.19