Projet - Système de recommandation

Fermé
dhfe Messages postés 1 Date d'inscription mercredi 9 mai 2018 Statut Membre Dernière intervention 9 mai 2018 - 9 mai 2018 à 09:22
mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 - 9 mai 2018 à 11:23
Bonjour,
Dans le cadre de mon master en système d'information, je dois rendre un projet sur python.
J'avoue que je suis encore trés débutante et que j'ai pas forcément saisie ce qui est demandé dans l'enoncé

"Projet – Recommandation de produits
On se place dans le cadre de la modélisation de comportements d’internautes en prenant
l’exemple d’un comparateur de forfaits téléphoniques. Plus particulièrement, on
considère que la modélisation se base sur les critères de recherche ainsi que les produits
qu’un utilisateur a sélectionnés.
En effet, lorsqu’un internaute accède au site web, il saisit des critères qui composent sa
requête (figure 1).
La démarche classique propose à l’internaute un certain nombre de forfaits
téléphoniques, qui correspondent à sa recherche. Ces produits sont souvent classés
selon le prix, la nature du produit, la durée de l’engagement, l’opérateur, etc (figure 2).
Ces classements ne dépendent donc pas du comportement de l’utilisateur, ni de son
historique de navigation.
L’objectif de ce projet consiste à exploiter un modèle probabiliste (Correspondence LDA)
afin de générer des recommandations de produits, qui tiennent compte du
comportement de l’utilisateur, de la corrélation qui existe entre les produits qu’il a déjà
consultés, ainsi que leurs correspondances avec les requêtes qu’il formule.
Étape 1 : Récupération et prétraitement des données
• Récupération des données sous http://vds2652.sivit.org/M1/training_set.csv
1) Lire les données en utilisant la méthode « read_csv » de pandas. Vous devrez
spécifier le paramètre « sep » pour lire correctement ce fichier.
2) Donner une capture d’écran des données dans l’interpréteur python.
3) Donner les dimensions du jeu de données en utilisant « shape ».
4) Extraire le nom de l’opérateur de la ligne 2 en utilisant la méthode d’indexation
par label (loc). Quel est le résultat obtenu ?
5) Construire un vocabulaire de produits à partir des colonnes « operateur » d'une
part, et de la concaténation, avec un _ des trois éléments du triplet
(« nom_forfait », « duree », « duree_engagement »). Par exemple, pour la
première ligne, on doit obtenir le résultat suivant : B&You_Forfait 24/24 Internet
5Go_9999_0
Étape 2 : Apprentissage et calcul de scores
Le modèle probabiliste CorrLDA peut être utilisé pour faire de la recommandation de
produits. Le fichier training_set dont on a enlevé la dernière transaction a été le jeu
d’entraînement. Nous avons testé le modèle sur la dernière requête.
Les fichiers générés sont disponibles ici : http://vds2652.sivit.org/M1/projet_EEJSI.zip
• la matrice final.beta est la distribution de probabilités des thèmes sur les produits
• la matrice result-phi.dat contient les probabilités des thèmes dans la nouvelle
session (qui n'appartient pas au jeu de données d'entraînement)
1) charger les différentes matrices en utilisant numpy
2) Prédiction de produits :
a) calculer les probabilités que l’utilisateur du jeu de test sélectionne
chacun des produits du vocabulaire, en multipliant result-phi.dat et
final.beta.
b) l’opération de multiplication de result-phi.dat et final.beta fournit un
vecteur des probabilités des différents produits. Pour extraire les produits
les plus intéressants, trier ce vecteur et récupérer les indices des produits
correspondants, en utilisant la méthode argsort.
c) comparer votre classement avec la vérité de terrain (les indices des
produits réellement consultés sont 22 23).""

Figure 1 :


Figure 2 :


Je sais que c'est un peu long mais ça fat trois jours que je suis dessus et j'ai pas pu avancer.
C'est vraiment urgent

Merci de votre aide
A voir également:

1 réponse

mamiemando Messages postés 33079 Date d'inscription jeudi 12 mai 2005 Statut Modérateur Dernière intervention 23 avril 2024 7 749
9 mai 2018 à 11:23
Bonjour,

Merci de poser une question précises.

Qu'est ce qui te bloque / qu'est ce que tu n'as pas compris ? Les forums sont là pour te débloquer sur des questions précises et concises, par contre ils ne sont pas là pour faire les exercices des étudiants à leur place :-)

Quelques indications :
  • pandas
    est un module python prévu pour charger en mémoire des fichiers de données.
  • numpy
    est un module python permettant de faire des calculs.


Ensuite il y a deux écoles pour travailler :
  • soit tu travailles dans un jupyter notebook (installé avec anaconda)
  • soit tu crées des fichiers python que tu exécutes depuis un terminal (commandes ms-dos...)


Je te recommande la première approche, plus confortable.

Pour installer tout ceci, en fonction de ton système d'exploitation :
  • Sous windows : installe anaconda python3 tu devrais avoir tout le nécessaire (au besoin, installe ce qui manque avec
    conda install ...
    ).
  • Sous linux : installe soit anaconda python3, soit les paquets appropriés via ton gestionnaire de paquets. Par exemple, sous ubuntu :
    sudo apt-get install jupyter-notebook python3 python3-numpy python3-pandas
    .


Avec jupyter notebook

Pour lancer jupyter, lance dans un terminal la commande suivante :

jupyter notebook


Remarque : si tu es sous linux et que tu n'utilises pas anaconda :
jupyter-notebook


Cela va ouvrir ton navigateur, dans lequel tu feras tout ton travail (développement, tests, etc.). Crées une cellule de code et tape dedans :

import pandas
import numpy

print("ok")


Regarde ensuite si tu parviens à exécuter ce code avec succès (sélectionne la cellule de code et fait maj+entrée). Si c'est le cas, ça veut dire que tout est installé, et il est temps de commencer à ajouter du code pour charger ton fichier de données et à faire ton exercice...

Pour plus de détails sur l'utilisation de jupyter, voir la documentation

Sans jupyter notebook

Crée un fichier texte (e.g. toto.py). Tu peux utiliser un bloc notes mais il est quand même préférable d'utiliser un éditeur un peu plus évolué (e.g.
notepad++
ou
pycharm
sous windows ;
gedit
ou
kwrite
sous linux).

#!/usr/bin/env python3
#-*- coding: utf-8 -*-

import pandas
import numpy

print("ok")


Ensuite, pour l'exécuter, en supposant que ton terminal soit dans le répertoire de
toto.py
, lance la commande :

python3 toto.py


Bonne chance
1