내가 보려고 만든 블로그
Surprise 모듈들 간단 정리 본문
추천에서 나름 유명한 프레임웤인 Surprise. 토치로 구현하느라 많이 써보진 않았는데 어쩌다 사용할 기회가 생겨
모듈들 간단하게 정리해봄.
surprise.Dataset.load_from_file(file_path , reader=reader)
surprise.Reader
토치의 Dataloader 같은 클래스임. args 에 reader가 들어가는데
아래처럼 surprise.Reader 에 데이터 형태에 맞춰서 line_format에 넣주면 알아서 파싱해준다.
reader = Reader(line_format='user item rating timestamp', sep=',', skip_lines=1)
ratingsDataset = Dataset.load_from_file(self.ratingsPath, reader=reader) # 포맷맞춰서 파싱해줌 .
build_full_trainset()
뭐에 쓰는거지 싶어 Document 찾아 본 결과 전체 데이터를 트레인셋으로 쓰는 함수라고 한다.
build_full_trainset().build_anti_test_set(fill=None)
위의 build_full_trainset()으로 인스턴스생성후 build_anti_test_set이라는 메소드가 존재 , 트레인셋에서 레이팅이 비어있는 값 , 유저가 평가하지 않은 아이템에 대한 레이팅을 특정값으로 채워서 return 한다. args로 fills가 들어가고 아무것도 주지 않으면 global_mean 값으로 채움. 다음과 같이 리턴
[ (user1, item10, 3) , (user1, item15, 3) ,(user2, item4, 3) ]
surprise.model_selection.train_test_split
트레인, 테스트로 스플릿해주는 함수. 기본값은 75:25 .
ratings 한 개수가 10만개이면 75000개를 트레인, 25000개를 테스트로 스플릿해줌.
surprise.model_selection.LeaveOneOut
이것도 트레인 , 테스트로 스플릿 해주는 함수 . 하나만 남기고란 말에 알수 있듯이 유저가 rating을 남긴 상품들 중에서 하나씩만 뽑아서 test셋으로 만들어준다.
model.fit , model.test
학습시키고 , 추론해주는 메소드들
'Recommendation > 모델링' 카테고리의 다른 글
<Recommendation> Matrix Factorization 부터 Deepmf , DCN, wide&deep 까지 (0) | 2022.09.13 |
---|---|
<Recommendation> BPR , Bayesian Personalized Ranking 구현 (0) | 2022.08.16 |
<Recommendation> MF , Biased_MF 구현 (0) | 2022.07.23 |
Collaborative Filtering (user) 구현 (0) | 2022.07.11 |
추천시스템 Metric 정리 (0) | 2022.06.19 |