반응형 개발/Recommender System19 추천시스템 Collaborative Filtering(CF) Python 기반 [3] 저번 포스팅에서는 SVD를 이용한 CF에 대해 다뤘다. 개인 맞춤형이 아닌 특정영화와 유사한 영화를 평점 행렬 기준으로 추천했었다. 이번 포스팅에서는 개인의 기존 평가를 기반으로 영화를 추천해주는 추천시스템을 구현해보자. 저번과 마찬가지로 MovieLens dataset을 이용한다. 필요한 데이터를 가져와서 보기 좋게 정리해보자. 여느때와 같이 csv파일을 읽어온다. rating_data는 각 사용자의 각 영화에 대한 평점을 나타내고, movie_data는 각 영화의 장르에 대해 나와있다. DataFrame의 피봇테이블을 이용해 왼쪽 인덱스는 userId, 각 column들은 movieId 그리고 값들은 평점으로 만들어준다.(값이 나와있지 않은 값은 .fillna(0)를 이용해 0으로 채운다.) 위와 같.. 2020. 5. 8. 추천시스템 Collaborative Filtering(CF) Python 기반 [2] 모델 기반 앞선 포스팅에서는 메모리 기반의 collaborative filtering에 대해 다뤘다. https://simonezz.tistory.com/22 추천시스템 Collaborative Filtering(CF) 정리 (Python 기반) - 1 Collaborative Filtering이란 무엇인가? 위의 그림에서도 알 수 있듯이 특정 사용자 A에게 컨텐츠(영화, 뉴스기사 등)를 추천하고자 할 때 취향이 비슷한 사용자의 취향에 기반해 추천을 하는 것이다. 즉 이제까.. simonezz.tistory.com 이제 모델 기반의 방법들에 대해 알아보자. 여기서는 sparse한 user-item matrix를 압축하거나 줄이는 방법 또한 포함하고 있다. 이를 위해서 Dimensionality Reduc.. 2020. 5. 6. 추천시스템 Collaborative Filtering(CF) Python 기반 [1] Collaborative Filtering이란 무엇인가? 위의 그림에서도 알 수 있듯이 특정 사용자 A에게 컨텐츠(영화, 뉴스기사 등)를 추천하고자 할 때 취향이 비슷한 사용자의 취향에 기반해 추천을 하는 것이다. 즉 이제까지 비슷한 컨텐츠를 재생하거나 읽은 사용자라면 비슷한 취향이겠거니 하고 컨텐츠를 추천해주는 것이다. The Dataset 이 알고리즘을 실험해보기 위해서는 item의 집합과 item에 반응하는 users의 집합이 필요하다. 여기서 explicit reaction(평점이나 별점)과 Implicit reaction(기사에 머무르는 시간, 장바구니 담기 등)으로 반응이 나눠진다. 위의 Rating Matrix를 예시로 보자. 5명의 사용자의 5개의 아이템에 대한 평가 행렬이다. 각 row는.. 2020. 4. 27. Pandas Library만을 이용하여 간단한 Content Based Filtering 구현하기 Content Based Filtering이란 말그대로 콘텐츠를 기반으로 필터링해서 추천해주는 알고리즘이다. 두 콘텐츠의 유사도는 콘텐츠의 특징에 기반하는데 예를 들면 영화의 경우에는 장르, 출연배우, 감독등이 있다. 오늘 구현에서 사용할 Dataset은 MovieLens dataset이다. "ml-latest-small.zip" 을 다운받고 압축을 풀면 links.csv, movies.csv, ratings.csv, tags.csv 파일이 있는데 우리는 여기서 movies.csv와 ratings.csv파일을 사용할 것이다. Data Visualization and Preprocessing 먼저 numpy 와 pandas를 가져오자. 그리고 다운받은 MovieLens dataset에서 ratings.cs.. 2020. 4. 27. 이전 1 2 3 4 5 다음 728x90 반응형