A Netflix é sobre conectar pessoas aos filmes que eles amam. Para ajudar os clientes a encontrar esses filmes, eles desenvolveram o sistema de recomendação de filmes de classe mundial: Cinematchsm. Seu trabalho é prever se alguém desfrutará de um filme com base em quanto gostaram ou não gostaram de outros filmes. A Netflix usa essas previsões para fazer recomendações pessoais de filmes com base nos gostos exclusivos de cada cliente. E enquanto o Cinematch está indo muito bem, sempre pode ser melhorado.
Agora, existem muitas abordagens alternativas interessantes de como o Cinematch funciona que a Netflix não tentou. Alguns são descritos na literatura, outros não. Estamos curiosos se algum deles pode vencer o cinema, fazendo melhores previsões. Porque, francamente, se houver uma abordagem muito melhor, poderá fazer uma grande diferença para nossos clientes e nossos negócios.
Créditos: https://www.netflixprize.com/rules.html
#DataScience
#Netflix
#Recommendation System
#Ratings
#Movie PRediction
#Numpy-Pandas
A Netflix forneceu muitos dados de classificação anônimos e uma barra de precisão de previsão 10% melhor do que o que o Cinematch pode fazer no mesmo conjunto de dados de treinamento. (A precisão é uma medida de quão previstos as classificações de filmes correspondem às classificações reais subsequentes.)
Obtenha os dados de: https://www.kaggle.com/netflix-inc/netflix-prize-data/data
Arquivos de dados:
A primeira linha de cada arquivo [Combined_Data_1.txt, combinada_data_2.txt, combinada_data_3.txt, combinada_data_4.txt] contém o ID do filme seguido por um cólon. Cada linha subsequente no arquivo corresponde a uma classificação de um cliente e sua data no seguinte formato:
CustomerID, classificação, data
O MovieIds varia de 1 a 17770 sequencialmente. O CustomerIds varia de 1 a 2649429, com lacunas. Existem 480189 usuários. As classificações estão em uma escala de cinco estrelas (integral) de 1 a 5. As datas têm o formato aaaaa-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
Relatório - Um relatório detalhado sobre a análise
git clone https://github.com/iamsivab/Movie-Recommendation-Netflix.git
Confira qualquer problema daqui.
Faça alterações e envie a solicitação de tração.
? Sinta -se à vontade para entrar em contato comigo @ [email protected]
MIT © Sivasubramanian