kkmm001 / StatApp-Collaborative-Filtering

ENSAE ParisTech Master Project 2015-2016 "Films Recommandation System by Collaborative Filtering"
1 stars 3 forks source link

StatApp-Collaborative-Filtering

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

Objectif

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 :

Phases du programme

Pour faire uniquement de la recommandation, allez directement à la phase 5.

Phase 1 - Nettoyage

Les données originales sont disponibles sur le site de Grouplens : http://grouplens.org/datasets/movielens/

Les modifications apportées sont :

Phase 2 - Préparation des données

Les données nécessaires à la prédiction sont générées.

# Se placer dans le dossier courant
source("main_preparation.R")

Phase 3 - Analyser les données

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")

Phase 4 - Evaluer les prédictions

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")

Phase 5 - Recommander

Pour effectuer les recommandations pour un utisateur :

# Se placer dans le dossier courant
source("main.R")

Phase 6 - Tests a posteriori des recommandations

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")

Organisation des dossiers

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