In [1]:
%matplotlib inline
import pandas as pd
from recommend import recommend_with_cosine_similarity
In [2]:
from IPython.core.display import HTML
css = open('table.css').read() + open('notebook.css').read()
HTML('<style>{}</style>'.format(css))
Out[2]:
In [3]:
video_games = pd.read_json("videogames.json")
video_games.head(5)
Out[3]:
In [4]:
ratings = pd.read_csv("ratings.csv")
ratings.head(5)
Out[4]:
In [5]:
video_games = video_games[~video_games.title.isnull()]
In [6]:
productID_counts = ratings['productID'].value_counts()
ratings = ratings[ratings['productID'].isin(productID_counts[productID_counts >= 5].index)]
In [7]:
userID_counts = ratings['userID'].value_counts()
ratings = ratings[ratings['userID'].isin(userID_counts[userID_counts >= 5].index)]
In [8]:
df = pd.merge(video_games,ratings, on="productID")
df.head(5)
df.shape
Out[8]:
In [9]:
ratings_pivot = df.pivot(index='userID', columns='productID').ratings
ratings_pivot.head(5)
Out[9]:
In [10]:
productID = ratings_pivot.columns
productID
Out[10]:
In [11]:
userID = ratings_pivot.index
userID
Out[11]:
In [12]:
correlated_items = ratings_pivot.corr()["B002I0JZOC"].sort_values(ascending=False).head(5)
correlated_items.index
Out[12]:
In [13]:
video_games[video_games["productID"].isin(correlated_items.index.tolist())]
Out[13]:
In [14]:
cosine_similarity_matrix = recommend_with_cosine_similarity(ratings_pivot)["B002I0JZOC"].sort_values(ascending=False).head(5)
cosine_similarity_matrix.index
Out[14]:
In [15]:
video_games[video_games["productID"].isin(cosine_similarity_matrix.index.tolist())]
Out[15]:
In [ ]:
In [ ]:
In [ ]:
In [ ]:
In [ ]: