ENSAE ParisTech Master Project 2015-2016 "Films Recommendation System by Collaborative Filtering"
Authors group: CUI Biwei/ DELGADO Claudia/ MIAH Mehdi/ MPELI MPELI Ulrich/
Tutors group: COTTET Vincent/ SEBBAR Mehdi
Dans ce projet, nous souhaitons recommander des films à un utilisateur au moyen des notes attribuées par l'ensemble des utilisateurs. Pour cela, nous avons identifier trois grandes façons de procéder :
Pour faire uniquement de la recommandation, allez directement à la phase 5.
Les données originales sont disponibles sur le site de Grouplens : http://grouplens.org/datasets/movielens/
Les modifications apportées sont :
Les données nécessaires à la prédiction sont générées.
# Se placer dans le dossier courant
source("main_preparation.R")
Deux fichiers pdf sont générés contenant les analyses descriptives des deux problèmes
# Se placer dans le dossier Analysis
source("pdf_analysis_ml-100k.Rmd")
source("pdf_analysis_ml-1m.Rmd")
Pour chaque famille de modèles, les notes des bases de test sont prédites à partir de l'étude des bases d'apprentissage
# Se placer dans le dossier courant
source("./CrossValidation/main_split.R") pour générer les datasets et la base vierge
# Remplacer '***' par le nom de la famille de méthode
source("./***/main_predictionsTest_***.R")
Pour effectuer les recommandations pour un utisateur :
# Se placer dans le dossier courant
source("main.R")
Les recommandations sont testées selon divers critères
# Se placer dans le dossier courant
source("./Tests/main_test_popularitybias.R")
source("./Tests/main_test_robust.R")
Analysis : analyse les données de chaque problème
CrossValidation : génére les sous-datasets servant à la validation croisée et la base vierge, contient les données nécessaires à la prédiction, générées par "main_preparation.R"
Data : contient les données de ml-100k et ml-1m nettoyées
NaiveAlgorithms : prédit et recommande en suivant les algorithmes naïfs
NeighborhoodBasedAlgorithms : prédit et recommande en suivant les algorithmes des plus proches voisins
Results : contient les données nécessaires à la recommandation finale, contient les résultats de la validation croisée à propos de l'estimation de modèles et de paramètres
SVD : prédit et recommande en suivant les algorithmes basés sur la décomposition de matrices
Tests : test les méthodes sur la présence d'un biais de popularité et sur l'influence des notes sur les recommandations
Util : contient les fonctions les plus utiles