fast and furious decision tree induction projet 4info 1 andra blaj nicolas desfeux emeline escolivet...
TRANSCRIPT
Fast and Furious Decision Tree Induction
Projet 4INFO
1
Andra BLAJNicolas DESFEUXEmeline ESCOLIVETSimon MANDEMENTRenaud PHILIPPEGareth THIVEUX
Encadreurs :Nikolaos PARLAVANTZASChristian RAYMOND
le 17/12/10
INSA Rennes
Fast and Furious Decision Tree Induction
1. Contexte2. Technologies utilisées lors du projet
1. Apprentissage automatique2. Arbres de décision3. MapReduce4. Hadoop
3. Spécifications fonctionnelles1. Données présentes en entrée2. Données en sortie3. L’application
4. Planification initiale5. Conclusion
2/29
Fast and Furious Decision Tree Induction
1.Contexte2. Technologies utilisées lors du projet
1. Apprentissage automatique2. Arbres de décision3. MapReduce4. Hadoop
3. Spécifications fonctionnelles1. Données présentes en entrée2. Données en sortie3. L’application
4. Planification initiale5. Conclusion
3/29
ContexteOrigines du projet
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
ContexteObjectifs
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
Fast and Furious Decision Tree Induction
1. Contexte
2.Technologies utilisées lors du projet1. Apprentissage automatique2. Arbres de décision3. MapReduce4. Hadoop
3. Spécifications fonctionnelles1. Données présentes en entrée2. Données en sortie3. L’application
4. Planification initiale5. Conclusion
6/29
Technologies utilisées1. Apprentissage automatique
• 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 AutomatiqueDéfinition - Fonctionnement
7/29
Arbres de décisions
8/29
Tableau de données
Age Boutons IMC Observations Diagnostic
25 OUI 19 Mal à la tête Rhume
46 NON 26 Tousse Rhume
37 NON 17.9 Fièvre Grippe
68 OUI 22 Plaques dans le dos
Eczéma
51 NON 35 Plaques dans le dos
Eczéma
18 OUI 17 Fièvre Grippe
Technologies utilisées2. Arbres de décisions : tableau de données
Technologies utilisées2. Arbres de décisions : arbre construit
Arbre construit à partir du tableau de données
9/29
Technologies utilisées2. Arbres de décisions : algorithme parallélisable
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ées3. MapReduce : map
• 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.
MapReducePartie Map
11/29
Technologies utilisées3. MapReduce : reduce
• 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.
MapReducePartie Reduce
12/29
Technologies utilisées4. Hadoop : présentation
• 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ées4. Hadoop : fonctionnement
• 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 et2. savoir faire3. sans faire savoir
Exemple de fonctionnement de MapReduce, pour compter les occurrences de mots dans un texte.
15/29
Technologies utiliséesParallélisation
• 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éesSolution envisagée
Fast and Furious Decision Tree Induction
1. Contexte2. Technologies utilisées lors du projet
1. Apprentissage automatique2. Arbres de décision3. MapReduce4. Hadoop
3.Spécifications fonctionnelles1. Données présentes en entrée2. Données en sortie3. L’application
4. Planification initiale5. Conclusion
17/29
Spécifications fonctionnelles1. Données présentes en entrée : données
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 fonctionnelles1. Données présentes en entrées : fichiers
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 fonctionnelles2. Données en sortie : format XML
20/29
Données en sortie
<? xml v e r s i on =" 1 . 0 " e n c o d i n g ="UTF-8" ?><Tree> <Node id =" 1 "> <Result . . . > < !-- compte-rendu des etiquettes . --> <Result number=“1" name=“grippe" percentage=“50" / > < !– Exemple de resultat --> <Question . . >+ < !-- question qui amenera a la creation de ces noeud --> <Question column=" Fumeur " value=“oui" entropy =" 1 " nbOcuurence=" 12 "> < !-- Exemple de question -->
<TrueNode id="2" / > <!– noeud où la réponse à la question est “oui” --> <Result...> <Question...> <FalseNode id="3" / > <!-- noeud où la réponse à la question est “non”-->
</Node></Tree>
• Format XML
Spécifications fonctionnelles2. Données en sortie : visualisation graphique
21/29
Données en sortie
• Visualisation graphique
Spécifications fonctionnelles3. L’application
22/29
Fast and Furious Decision Tree Induction
1. Contexte2. Technologies utilisées lors du projet
1. Apprentissage automatique2. Arbres de décision3. MapReduce4. Hadoop
3. Spécifications fonctionnelles1. Données présentes en entrée2. Données en sortie3. L’application
4.Planification initiale5. Conclusion
23/29
Planification initialeCalendrier, ressources et tâches
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 : - 1re estimation basée sur le temps déjà passé sur les tâches - 2ème estimation grâce au Planning Poker
Planification initialeTâches et diagramme de Gantt
25/29
Planification initialeRisques et suivi de planification
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 initialePrototypes
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.
Fast and Furious Decision Tree Induction
1. Contexte2. Technologies utilisées lors du projet
1. Apprentissage automatique2. Arbres de décision3. MapReduce4. Hadoop
3. Spécifications fonctionnelles1. Données présentes en entrée2. Données en sortie3. L’application
4. Planification initiale
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.