Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente | ||
site:enseignement:master:bdle:tmes:projet2020 [24/11/2020 18:07] amine |
site:enseignement:master:bdle:tmes:projet2020 [14/12/2020 09:47] (Version actuelle) amine [Modalités] |
||
---|---|---|---|
Ligne 24: | Ligne 24: | ||
===== Projet 2 ===== | ===== Projet 2 ===== | ||
- | en construction ... | + | Le notebook des réponses devra contenir les informations suivantes : |
- | rajouter notebook et trame réponses | + | * Nom(s) et prénom(s) du groupe (monôme ou binôme mais pas au delà) |
+ | * Description des données utilisées | ||
+ | * Source : lien vers la source publique des données ou lien de téléchargement si pas de lien publique | ||
+ | * Taille : en MB et en nb_lignes | ||
+ | * Description breve des données, quelle est la variable à prédire | ||
+ | * L'argumentaire demandé dans chacune des taches décrites ci-dessous | ||
+ | |||
==== Modalités ==== | ==== Modalités ==== | ||
- | Rendre un lien vers un **notebook** Databricks + petit compte-rendu (suivant **trame**) | + | Rendre |
- | Date de remise : **10-12-2020** | + | - un document pdf avec lien vers un **notebook** Databricks contenant **code source** et **informations** décrites ci-haut |
+ | - un document HTML obtenu en exportant votre **notebook** | ||
+ | Date de remise : à partir du **10-12-2020** jusqu'au **20-12-2020 23h59** sur | ||
+ | [[https://moodle-sciences.upmc.fr/moodle-2020/course/view.php?id=3209|Moodle]] | ||
- | Le sujet traité est la réalisation d’un pipeline ML pour entrainer un arbre de décision pour la *régression* à l’aide de l'API Spark ML décrite en cours, | + | Le sujet traité est la réalisation d’un pipeline ML pour entrainer un arbre de décision pour la *régression* à l’aide de l'API Spark ML décrite en cours, Le langage utilisé est **Scala**. |
L'objectif principal est d'être confronté à des problématiques réelles rencontrées lorsqu'on traite des données "brutes". | L'objectif principal est d'être confronté à des problématiques réelles rencontrées lorsqu'on traite des données "brutes". | ||
Vous être libre d'utiliser le dataset de votre choix dont la taille sera entre 10 MB et 50 MB. | Vous être libre d'utiliser le dataset de votre choix dont la taille sera entre 10 MB et 50 MB. | ||
Ligne 45: | Ligne 54: | ||
* Identifier les données manquantes : extraire, pour chaque attribut, sa proportion de valeurs nulles | * Identifier les données manquantes : extraire, pour chaque attribut, sa proportion de valeurs nulles | ||
* Identifier les valeurs aberrantes en fonction de votre dataset, s'il y en a | * Identifier les valeurs aberrantes en fonction de votre dataset, s'il y en a | ||
- | * Sélectionner un sous-ensemble d'attributs pertinents en suivant un ensemble de critères que vous vous fixerez et que vous décrirez. | + | * Sélectionner un sous-ensemble d'attributs pertinents en suivant des critères qui vous semblent pertinents et que vous documenterez. |
- | * Sélectionner un sous-ensembles des données, si besoin en suivant également des critères qui vous semblent pertinents. | + | |
+ | Les critères du dernier point seront définis en vous appuyant sur votre compréhension des données ou sur des indications fournies par l'auteur des données (ex. les données fournies dans le cadre d'un challenge sont souvent accompagnées de suggestions des participants). | ||
- | Les critères des deux derniers points seront définis en vous appuyant sur votre compréhension des données ou sur des indications fournies par l'auteur des données (ex. les données fournies dans le cadre d'un challenge sont souvent accompagnées de suggestions des participants) | ||
=== Tache 2 === | === Tache 2 === | ||
Créer un pipeline pour encoder les features comme vu en cours : indexation des string, assemblage des vecteurs puis indexation. | Créer un pipeline pour encoder les features comme vu en cours : indexation des string, assemblage des vecteurs puis indexation. | ||
- | Préciser quelles variables seront catgoricielles et quelles variables seront continues | + | Préciser quelles variables donnent lieux à des "catgorical features" et quelles variables donnent lieux à des features continues. |
- | Si besoin, transformation des attributs timestamps vers nombre ou bien extraction de l’année ou du mois. | + | A titre d'exemple, pour un dataset avec des attributs timestamps, envisager une opération roll-up vers le mois ou l'année. |
- | Construire une paire 30%-70%d de jeux de test et d'entrainement. | + | Construire une paire 30%-70% de jeux de test et d'entrainement. |
Lancer l'entrainement de l'arbre de décision puis afficher ses paramètres. | Lancer l'entrainement de l'arbre de décision puis afficher ses paramètres. | ||
Ligne 64: | Ligne 73: | ||
=== Tache 3 === | === Tache 3 === | ||
- | • Itération 1 : | + | == Sous-tache a == |
- | • Cross validation avec 3 folds, grid search sur paramètres pertinents • Sélection du meilleur modèle | + | Mettre en place une cross validation avec 3 folds, et y inclure un grid search avec un ensemble de paramètres qui vous semblent pertinents. |
- | • Analyses des métriques RMSE et MAE si dispo | + | |
- | • Iteration 2 : tentative d’amélioration de la précision | + | |
- | • Elimination des valeurs aberrantes (si elles existent) | + | |
- | • Imputation des valeurs manquantes (utiliser fonctions Spark ML) | + | |
- | • Relancer l’inference et constater les nouvelles valeurs des métriques | + | |
- | === Tache 4 === | + | Afficher pour le meilleur modèle sélectionné : |
+ | * les paramètres de l'arbre | ||
+ | * les métriques RMSE et MAE et les comparer à celles obtenues en | ||
- | • Comparer les résultats des deux itérations | + | == Sous-tache b == |
- | • Tenter d’expliquer la différence | + | Dans une tentative d’améliorer la précision : |
- | • Avis sur la libraire ML : difficultés rencontrées, aspects appréciés | + | |
+ | * sélectionner un sous-ensembles des données en suivant également des critères qui vous semblent pertinents (valeurs aberrantes, prediction trop imprecise) | ||
+ | * Imputation des valeurs manquantes si possible (explorer l'estimateur d'imputation de Spark ML) | ||
+ | * Toute autre astuce qui vous semble utile | ||
+ | |||
+ | Relancer la cross validation avec le dataset nettoyé et constater les nouvelles valeurs des métriques. | ||
+ | |||
+ | |||
+ | === Tache 4 === | ||
+ | Donner succinctement votre avis sur la libraire ML : difficultés rencontrées, aspects appréciés, facilité d'utilisation par rapport à d'autres librairies plus familières . | ||