Netflix consiste à connecter les gens aux films qu'ils aiment. Pour aider les clients à trouver ces films, ils ont développé un système de recommandation de films de classe mondiale: CineMatchSM. Son travail consiste à prédire si quelqu'un appréciera un film en fonction de ce qu'il aimait ou n'aimait pas d'autres films. Netflix utilise ces prédictions pour faire des recommandations de films personnelles en fonction des goûts uniques de chaque client. Et bien que Cinematch se porte plutôt bien, il peut toujours être amélioré.
Maintenant, il existe de nombreuses approches alternatives intéressantes pour le fonctionnement de CineMatch que Netflix n'a pas essayé. Certains sont décrits dans la littérature, certains ne le sont pas. Nous sommes curieux de savoir si l'un de ces éléments peut battre Cinematch en faisant de meilleures prédictions. Parce que, franchement, s'il y a une bien meilleure approche, cela pourrait faire une grande différence pour nos clients et notre entreprise.
Crédits: https://www.netflixprize.com/rules.html
#DataScience
#Netflix
#Recommendation System
#Ratings
#Movie PRediction
#Numpy-Pandas
Netflix a fourni beaucoup de données de notation anonymes et une barre de précision de prédiction qui est 10% meilleure que ce que CineMatch peut faire sur le même ensemble de données de formation. (La précision est une mesure de la façon dont les notes prédites des films correspondent aux notes réelles ultérieures.)
Obtenez les données de: https://www.kaggle.com/netflix-inc/netflix-prize-data/data
Fichiers de données:
La première ligne de chaque fichier [combinée_data_1.txt, combinée_data_2.txt, combinée_data_3.txt, combinée_data_4.txt] contient l'ID de film suivi d'un côlon. Chaque ligne suivante du fichier correspond à une note d'un client et à sa date au format suivant:
CustomerId, note, date
Les films varient de 1 à 17770 séquentiellement. CustomerIDS varie de 1 à 2649429, avec des lacunes. Il y a 480189 utilisateurs. Les notes sont sur une échelle cinq étoiles (intégrale) de 1 à 5. Les dates ont le format yyyy-mm-dd.
# Movie by Movie Similarity Matrix
start = datetime . now ()
if not os . path . isfile ( 'm_m_sim_sparse.npz' ):
print ( "It seems you don't have that file. Computing movie_movie similarity..." )
start = datetime . now ()
m_m_sim_sparse = cosine_similarity ( X = train_sparse_matrix . T , dense_output = False )
print ( "Done.." )
# store this sparse matrix in disk before using it. For future purposes.
print ( "Saving it to disk without the need of re-computing it again.. " )
sparse . save_npz ( "m_m_sim_sparse.npz" , m_m_sim_sparse )
print ( "Done.." )
else :
print ( "It is there, We will get it." )
m_m_sim_sparse = sparse . load_npz ( "m_m_sim_sparse.npz" )
print ( "Done ..." )
print ( "It's a " , m_m_sim_sparse . shape , " dimensional matrix" )
print ( datetime . now () - start )
from datetime import datetime
import pandas as pd
import numpy as np
import matplotlib
import matplotlib.pyplot as plt
import seaborn as sns
import os
from scipy import sparse
from scipy.sparse import csr_matrix
from sklearn.decomposition import TruncatedSVD
from sklearn.metrics.pairwise import cosine_similarity
import random
knn_bsl_u 1.0726493739667242
knn_bsl_m 1.072758832653683
svdpp 1.0728491944183447
bsl_algo 1.0730330260516174
xgb_knn_bsl_mu 1.0753229281412784
xgb_all_models 1.075480663561971
first_algo 1.0761851474385373
xgb_bsl 1.0763419061709816
xgb_final 1.0763580984894978
xgb_knn_bsl 1.0763602465199797
Name: rmse, dtype: object
Rapport - Un rapport détaillé sur l'analyse
git clone https://github.com/iamsivab/Movie-Recommendation-Netflix.git
Consultez tout problème à partir d'ici.
Apporter des modifications et envoyer une demande de traction.
? N'hésitez pas à me contacter @ [email protected]
MIT © Sivasubramanian