Fast and Furious Decision Tree Induction Projet 4INFO 1 Andra BLAJ Nicolas DESFEUX Emeline ESCOLIVET Simon MANDEMENT Renaud PHILIPPE Gareth THIVEUX Encadreurs : Nikolaos PARLAVANTZAS Christian RAYMOND le 17/12/10 INSA Rennes
Fast and Furious Decision Tree Induction 1.Contexte 2.Technologies utilisées lors du projet 1.Apprentissage automatique 2.Arbres de décision 3.Map-Reduce 4.Hadoop 3.Spécifications fonctionnelles 1.Données présentes en entrée 2.Données en sortie 3.Arbres de décision dans l’application 4.Parallélisation 4.Planification initiale 5.Conclusion 2/29
1. Contexte 3/29
Contexte (1) Origines du projet Projet lié aux activités de recherche de l’IRISA. Équipe Texmex: exploitation de documents multimédia. Équipe Myriads: développement et administration de systèmes distribués à large échelle. 4/29
Contexte (2) Objectifs Développer un algorithme capable de faire de l’apprentissage automatique. Créer des arbres aidant à la décision. Réduire le temps d’exécution. Généraliser le fonctionnement pour l’adapter à plusieurs domaines. 5/29
2. Technologies utilisées lors du projet 6/29
Technologies utilisées (1) Discipline dans laquelle un outil est capable d’apprendre par lui-même à partir d’une base de données d’exemples. Forme d’intelligence artificielle. Apprentissage Automatique Définition - Fonctionnement 7/29
Technologies utilisées (2) Arbres de décisions 8/29 Tableau de données AgeBoutonsIMCObservationsDiagnostic 25OUI19Mal à la têteRhume 46NON26TousseRhume 37NON17.9FièvreGrippe 68OUI22 Plaques dans le dos Eczéma 51NON35 Plaques dans le dos Eczéma 18OUI17FièvreGrippe
Technologies utilisées (3) Arbre construit à partir du tableau de données 9/29
Technologies utilisées (4) 10/29 Arbres de décisions Algorithme aisément parallélisable au niveau des calculs: – Au niveau des nœuds – Au niveau des questions Nécessité d’utiliser un modèle de parallélisation: MapReduce.
Technologies utilisées (5) Opération exécutée en parallèle – Chaque nœud travaille indépendamment des autres, sur une partie du fichier d’entrée. Traitement différent selon le type: Discrète, Continue ou Texte. MapReduce Partie Map 11/29
Technologies utilisées (6) Partitionnement des données. Multiprocessus. Nœuds esclaves font remonter l'information. Groupement des couples ayant la même clé. Le nœud origine peut, à la fin de l'opération Reduce, donner une réponse. MapReduce Partie Reduce 12/29
Technologies utilisées (7) Projet libre qui permet une implémentation de MapReduce. Un nœud maître et des nœuds esclaves. Fractionnement du traitement sur différentes machines. Hadoop 13/29
Technologies utilisées (8) Système de fichiers distribué propre à Hadoop. Répartition des données entre les Datanodes. Assignation des tâches aux nœuds esclaves. Retour du résultat au nœud maître. Hadoop 14/29
Parallélisation Fichier d’entrée: 1. savoir être et 2. savoir faire 3. sans faire savoir Exemple de fonctionnement de MapReduce, pour compter les occurrences de mots dans un texte. 15/29 Technologies utilisées (9)
Spécification importante du projet → réduire le temps de construction des questions et du parcours de l’arbre. Solution envisagée → utilisation d’un cluster de machines via Hadoop (de manière plug- and-play). Parallélisation – répartition de plusieurs "job" sur plusieurs machines connectées. 16/29 Technologies utilisées (10)
3. Spécifications fonctionnelles 17/29
Spécifications fonctionnelles (1) Données en entrée 18/29 3 types de descripteurs: – discrete : données faisant partie d’une liste prédéfinie (ex: « oui », « non », « peut être »); – continuous : valeurs numériques ordonnées (ex : IMC); – text : phrases ou expressions;
Spécifications fonctionnelles (2) 19/29 Fichiers en entrée 2 fichiers en entrée: - fichier descripteur: la liste des annotations possibles une description du contenu du fichier de données une description du type des descripteurs ou des attributs - fichier de données : les données et les annotations associées 25, Oui, 19, Mal à la tête, Rhume. 46, Non, 26, Tousse, Grippe. 37, Non, 17.9, Fièvre, Rhume. Grippe, Rhume. age : continuous : ignore. boutons : discrete : cutoff = 15. imc : continuous. observation : text.
Spécifications fonctionnelles (3) 20/29 Données en sortie + Format XML
Spécifications fonctionnelles (4) 21/29 Données en sortie Visualisation graphique
Spécifications fonctionnelles (5) 22/29
4. Planification initiale 23/29
Planification initiale (1) 24/29 Calendrier : - 7h par semaine - entre 25 et 28h en semaine de projet - ajout de semaines de congés (semaine de partiels, vacances de Noël …) Ressources : 6 personnes, ayant chacune la même charge, mais avec différentes responsabilités Détermination des tâches : 5 phases, chacune divisées entre 3 et 5 tâches, elles-mêmes découpées en sous-tâches et sous-sous-tâches Estimation des durées : - 1 re estimation basée sur le temps déjà passé sur les tâches - 2 ème estimation grâce au Planning Poker
Planification initiale (2) 25/29
Planification initiale (3) Analyse des risques : -Chemin critique à définir pour prévenir tout retard sur la date finale du projet -Prévenir le risque de la perte de données : SVN sur GoogleCode, Forge INSA, copies locales -Difficultés et éventuels problèmes techniques lors de la mise en place de la parallélisation, utilisation du cluster Hadoop, pannes de PC Suivi de planification : -Rectification et mise à jour du planning. -Affinage de la planification lors de la phase de construction. 26/30
Planification initiale (4) 27/30 Ce que nous avons réalisé : Lecture et analyse des fichiers d’entrée. Génération de tous les types de questions. Agrégation des réponses pour les questions discrètes et continues. Génération d’un fichier qui contient toutes les questions.
5. Conclusion 28/29
Conclusion 29/29 Fast and Furious Decision Tree Induction : Projet à l’origine d’équipes de l’IRISA. Création d’arbres aidant à la décision. Traitement des fichiers de données volumineux grâce à une parallélisation des calculs. Réussite et respect des délais « If you fail to plan then you plan to fail » => une bonne planification et un suivi régulier.