해당 필터링에서는 기준이 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에게 영화를 추천한다.