Netflix - это все о соединении людей с любимыми фильмами. Чтобы помочь клиентам найти эти фильмы, они разработали систему рекомендаций мирового класса: Cinematchsm. Его задача состоит в том, чтобы предсказать, будет ли кто -то наслаждаться фильмом, основанным на том, насколько он любил или не любил другие фильмы. Netflix использует эти прогнозы, чтобы дать личные рекомендации по фильму на основе уникальных вкусов каждого клиента. И хотя Cinematch поступает довольно хорошо, его всегда можно сделать лучше.
Теперь есть много интересных альтернативных подходов к тому, как работает Cinematch, который Netflix не пробовал. Некоторые из них описаны в литературе, некоторые нет. Нам любопытно, сможет ли кто -нибудь из них победить Cinematch, делая лучшие прогнозы. Потому что, честно говоря, если есть гораздо лучший подход, это может иметь большое значение для наших клиентов и нашего бизнеса.
Кредиты: https://www.netflixprize.com/rules.html
#DataScience
#Netflix
#Recommendation System
#Ratings
#Movie PRediction
#Numpy-Pandas
Netflix предоставил много анонимных данных о рейтингах, а также полоса точности прогнозирования, которая на 10% лучше, чем то, что Cinematch может сделать на том же наборе данных обучающих данных. (Точность - это измерение того, как близко прогнозируемые оценки фильмов соответствуют последующим фактическим оценкам.)
Получить данные от: https://www.kaggle.com/netflix-inc/netflix-prize-data/data
Файлы данных:
Первая строка каждого файла [COBCOMINED_DATA_1.TXT, COBCOMINED_DATA_2.TXT, COBCOMINED_DATA_3.TXT, COBCOMINED_DATA_4.TXT] содержит идентификатор фильма, за которым следует толстая кишка. Каждая последующая строка в файле соответствует рейтингу от клиента и его даты в следующем формате:
CustomerId, рейтинг, дата
Фильмииды варьируются от 1 до 17770 последовательно. Customerids варьируются от 1 до 2649429, с пробелами. Есть 480189 пользователей. Рейтинги находятся в пятизвездочной (интегральной) шкале от 1 до 5. Даты имеют формат 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
Отчет - подробный отчет об анализе
git clone https://github.com/iamsivab/Movie-Recommendation-Netflix.git
Проверьте любую проблему отсюда.
Внесите изменения и отправьте запрос на привлечение.
? Не стесняйтесь связываться со мной @ [email protected]
MIT © Sivasubramanian