

일반적으로는 사용자 기반 보다는 아이템 기반 협업 필터링이 정확도가 더 높음.
- 비슷한 영화를 좋아한다고 취향이 비슷하다고 판단하기 어렵거나
 - 매우 유명한 영화는 취향과 관계없이 관람하는 경우가 많고
 - 사용자들이 평점을 매기지 않는 경우가 많기 때문.
 

user1은 item1을 4만큼 item4를 2만큼 좋아하고
user2는 item2를 5만큼 item4를 3만큼 좋아하고 이런 상황일 때 빈칸을 예측.



genre와 keywords 컬럼은 보기와는 다르게 문자 형태로 저장되어 있음.

문자열로 된 데이터를 형태만 맞으면 type을 변환할 수 있다.
from ast import literal_eval





.join(): 주어진 리스트나 튜플의 요소들을 하나의 문자열로 결합



텍스트 데이터에서 단어의 빈도를 벡터화해 유사도를 측정하려는 것.
from sklearn.feature_extraction.text import CountVectorizer # CountVectorizer(min_df=0, ngram_range=(1,2))
min_df: 특정 단어가 최소 몇개 나와야 벡터화에 포함될지 설정하는 것. 기본값은 1이다. 0으로 설정하면 에러
n-gram은 텍스트에서 연속된 n개의 단어를 의미.
1-gram ex) machine, learning, is
2-gram ex) machine learning, learning is
gram_range=(1,2): 1-gram, 2-gram 모두 고려한다는 의미







평점이 0인 데이터도 있고

한명만 평점을 준것도 있다.


최소 투표 회수를 60% 지점으로 설정 quantile()








특정 책에 별점 1점 준 사람, 별점 2점 준 사람...











유사도 결과를 인덱스를 가진 리스트 형태로 바꿔줌


book에 tag 컬럼 머지






참고




