1216
[17주차 - Day2] Recommendation system
무비렌즈 데이터를 활용한 사용자 협업 필터링
# 데이터 로딩 및 분석 부분 실습 코드 정리
from surprise import Dataset
from surprise import Reader
from collections import defaultdict
import numpy as np
import pandas as pd
movies = pd.read_csv("https://grepp-reco-test.s3.ap-northeast-2.amazonaws.com/movielens/movies.csv")
ratings = pd.read_csv("https://grepp-reco-test.s3.ap-northeast-2.amazonaws.com/movielens/ratings.csv")
movies.head()
ratings.head()
movie_ratings = pd.merge(movies, ratings, left_on='movieId', right_on='movieId')
movie_ratings.head()
데이터 분석
- 영화별 평점수: min, max, median, mean
- 가장 평점이 많은 영화 10개는?
- 영화별 평점 평균: min, max, median, mean
- 가장 평점이 높은 영화 10개는? (100개 이상 평점이 있는 영화 중)
movie_ratings_summary = movie_ratings[['movieId', 'rating']].groupby(['movieId']).agg(['count', 'median', 'mean'])
movie_ratings_summary.head()
movie_ratings_summary.columns = ['count', 'median', 'mean']
movie_ratings_summary.sort_values('count', ascending=False).head(10)
movie_ratings_summary.sort_values('mean', ascending=False).head(10)
movie_ratings_summary[movie_ratings_summary['count'] > 100].sort_values('mean', ascending=False).head(10)
import seaborn as sns
import matplotlib.pyplot as plt
plt.figure(figsize=(16,8))
sns.distplot(a=movie_ratings_summary['mean'], kde=True, color='r')
sns.distplot(a=movie_ratings_summary['count'], kde=True, color='g')
user_rating_summary = movie_ratings[['userId', 'rating']].groupby(['userId']).agg(['count', 'median', 'mean'])
user_rating_summary.columns = ['count', 'median', 'mean']
user_rating_summary.sort_values('median', ascending=True).head(10)
sns.distplot(a=user_rating_summary['mean'], kde=True, color='r')
sns.distplot(a=user_rating_summary['count'], kde=True, color='r')
- 여기까지 데이터 분석 및 정리 > 내일은 이 데이터들로 사용자 기반 추천 시스템 제작
'프로그래머스 데브 코스 > TIL' 카테고리의 다른 글
[6기] 프로그래머스 인공지능 데브코스 109일차 TIL (0) | 2023.12.18 |
---|---|
[6기] 프로그래머스 인공지능 데브코스 108일차 TIL (1) | 2023.12.17 |
[6기] 프로그래머스 인공지능 데브코스 106일차 TIL (0) | 2023.12.15 |
[6기] 프로그래머스 인공지능 데브코스 105일차 TIL (0) | 2023.12.14 |
[6기] 프로그래머스 인공지능 데브코스 104일차 TIL (0) | 2023.12.13 |