해당 필터링에서는 기준이 user
가 된다.
해당 필터링을 진행하기 위해 chosen_user
를 선택한다. chosen_user
와 cosine similarity
값이 비슷한 user들의 list를 뽑아낸다.
우리는 어느 한 영화에 대해 chosen_user
가 매길 평점이 궁금하므로 어느 한 영화에 대해 비슷한 user들이 매긴 평점을 table에서 가져오고 가중치를 계산한다.
해당 값들을 바탕으로 chosen_user
가 매길 평점을 예측할 수 있다.
해당 필터링에서는 기준이 영화
가 된다. (유저 기반과 반대의 세팅으로 시작)
위와 동일하게 cosine similarity
을 구해 사용하게 된다.
이를 통해 우리가 선택한 영화와 비슷한 평점을 받은 영화들을 알아낼 수 있게 된다.
해당 사항을 우리의 프로젝트에 적용하게 된다면 평점을 입력한 적 없는 user
에 한해서 데이터가 일정 수준 이상 쌓이기 전에 user가 관심이 있을만한 영화
를 제시하기 좋을 것 같다고 생각했다.
생선 구분 모델
과 마찬가지로 트레인셋과 테스트셋을 나누어 필터링을 진행한다. 평점의 범위
를 정해주어야 하고, surprise
모듈을 설치해주어야 한다. 우리가 선택한 user
가 우리가 선택한 영화
를 보지 않았더라도 평점을 예측할 수 있다는 것이다. 우리가 선택한 user
가 어떤 영화를 가장 좋아할지 알아낼 수 있다.우리가 선택한 user
가 좋아할만한 영화를 고를 수 있기 때문이다. 아이템 기반 협업 필터링
을 통해 user가 선택한 영화와 비슷한 평점을 받은 영화 중 비슷한 장르
가 있다면 해당 영화를 우선적으로 제시하고, 없다면 비슷한 평점을 받은 영화
를 제시한다.잠재 요인 협업 필터링
을 돌려 우리가 가지고 있는 영화 데이터셋 안에 있는 영화에 user가 부여할 예측 평점을 구하고, 평점이 높은 순으로 user에게 영화를 추천한다.