반응형 전체 글105 추천시스템 Collaborative Filtering(CF) Python 기반 [4] 저번 포스팅에서는 가장 단순한 MF인 SVD를 이용하여 구현했었는데, https://simonezz.tistory.com/25 추천시스템 Collaborative Filtering(CF) Python 기반 [3] 저번 포스팅에서는 SVD를 이용한 CF에 대해 다뤘다. 개인 맞춤형이 아닌 특정영화와 유사한 영화를 평점 행렬 기준으로 추천했었다. 이번 포스팅에서는 개인의 기존 평가를 기반으로 영화를 추천해주는 추천시스템.. simonezz.tistory.com 이번 포스팅에서는 Matrix Factorization을 이용한 CF방식 중 Banila-MF를 이용하여 구현해보고자 한다. Matrix Factorization은 dimension reduction방법 중 하나로 training matrix R이 주.. 2020. 5. 8. 추천시스템 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. Coursera 강의 리뷰 2 - TFIDF and Content-Based Filtering = Term Frequency * Inverse Document Frequency Term Frequency : 얼마나 자주 그 용어가 document에서 등장했나? 얼마나 그 document와 관련되었나? Inverse Document Frequency : 얼마나 적은 documents가 이 term을 가지고 있나? -> 이 term이 많은 documents에서 등장할수록 IDF value는 작아진다. 즉 어느곳에나 등장하는 term에는 관심없고 드문 term에 관심있다. log를 사용해서 함. document의 수가 너무 크기 때문. 예 ) "The Civil War"에 대해 찾아본다고 하면, IDF value는 "The"는 매우 자주 등장하는 Term. log1 = 0으로 수렴. 즉 no weigh.. 2020. 4. 23. 이전 1 ··· 12 13 14 15 16 17 18 다음 728x90 반응형