1 / 41

Fast and Furious Decision Tree Induction

Fast and Furious Decision Tree Induction. Andra BLAJ Nicolas DESFEUX Emeline ESCOLIVET Alejandro GALECH MERCADO Simon MANDEMENT Renaud PHILIPPE Gareth THIVEUX. Problématique actuelle. Classification supervisée Importantes bases d’informations à la portée de tous (ex: Wikipedia ).

ebony-haley
Download Presentation

Fast and Furious Decision Tree Induction

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Fast and FuriousDecisionTree Induction Andra BLAJ Nicolas DESFEUX Emeline ESCOLIVET Alejandro GALECH MERCADO Simon MANDEMENT Renaud PHILIPPE Gareth THIVEUX

  2. Problématique actuelle Classification supervisée • Importantes bases d’informations à la portée de tous (ex: Wikipedia). • Algorithmes pouvant exploiter ces informations = construction automatique des règles de décision. • Remplacer la décision des experts par un outil utilisant ces algorithmes. • Notre outil: • Exploiter une base d’informations grâce à la classification supervisée. • Rendre une décision équivalente à celle d’un expert. 2/41

  3. Comment y parvenir? Objectifs • Traiter de gros volumes de données (plusieurs To). • Développer un outil basé sur l’apprentissage supervisé. • Implémenter un algorithme lié aux arbres de décision. • Réduire le temps d’exécution via la parallélisation. • Obtenir un outil générique utilisable sur des domaines variés. 3/41

  4. Développer une application Description de l’application • Implémentation d’un algorithme d’apprentissage automatique supervisé. • Capable d’apprendre par lui-même à partir d’une base de données d’exemples. • Utilisation de Map-Reduce: • afin de réduire le temps d’exécution. • afin de paralléliser les calculs sur un cluster de machines. 4/41

  5. L’importance de Map-Reduce Parallélisation Exemple de fonctionnement de Map-Reduce pour compter les occurrences de mots dans un texte. Fichier d’entrée: 1. savoir être et 2. savoir faire 3. sans faire savoir 5/41

  6. Fast and FuriousDecisionTree Induction • Fonctionnalités de l’outil • Données en entrées • Arbre de décision • Données en sortie • Interface graphique • Fonctionnement de l’application et technologies utilisées • Choix de l’algorithme • Map-Reduce • Initialisation • Choix de la meilleure question • Séparation en deuxnoeudsfils • Mise en place de la récursivité • Arrêt de l’algorithme • Hadoop • Plusieurs machines • Planification finale • Conclusion 6/41

  7. 1. Fonctionnalités de l’outil

  8. Traiter les données en entrée Un même format pour tous les domaines • Outil de classification basé sur des exemples en entrée. • Base d’exemples constitués d’attributs et d’une classe à prédire. 8/41

  9. Objectif: un arbre de décision Création d’un arbre de décision • Possibilité de traiter plusieurs types d’attributs (discrets, numériques et textuels). • Algorithme parallélisable et populaire. • Modèle facilement interprétable. 9/41

  10. Sorties de l’application (1) Production de règles hiérarchiques binaires Sortie graphique 10/41

  11. Sorties de l’application (2) Sauvegarde du modèle dans un fichier XML Fichier XML 11/41

  12. Sorties de l’application (3) Visualisation graphique du modèle produit Sortie arborescente 12/41

  13. Une interface graphique Pilotage de l’application • par une interface graphique. • par ligne de commande. 13/41

  14. 2. Fonctionnement de l’application et technologies utilisées

  15. Exemple d’apprentissage Classification thématique d’articles de presse Attributs Classe 15/41

  16. Choix de l’algorithme (1) Algorithme d’induction pour un arbre de décision Algorithme de CART • 3 conditions d’arrêt: • Profondeur maximale • Questions restantes • Nombre d’exemples par feuilles • + Entropie Générer les questions Evaluer toutes les questions Choisir la meilleure entropie Construire les fils si la condition d’arrêt est à false. 16/41

  17. Choix de l’algorithme (2) Algorithme de CART • 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: Map-Reduce. • Volonté de réduire le temps d’exécution par la parallélisation. 17/41

  18. Qu’est-ceque le Mapper? MapReduce Mapper • Traite des quantités conséquentes de données en parallèle (utilisé par Google et Facebook). • Opérations exécutées indépendamment les unes des autres, chacune en parallèle sur une partie du fichier d’entrée. • Traitement différent selon le type d’attributs: Discret, Numérique, Textuel. 18/41

  19. Qu’est-ce que le Reducer? MapReduce Reducer • Partitionne les données. • Technologie multiprocessus. • Les nœuds esclaves font remonter l’information au nœud maître. • Regroupe les couples ayant la même clé. • Le nœud maître peut, à la fin de l’opération Reduce, proposer une réponse. 19/41

  20. Initialisation - MapReduce 1er job MapReduce (initialisation sur le nœud racine) Paralléliser le traitement des données en entrée • Génère toutes les questions possibles sur la base d’exemples avec les statistiques des classes associées. • Mapper: Découpe chaque ligne pour former des couples (attribut, classe). • Reducer: Rassemble les résultats par attributs. 20/41

  21. Exemple de questions générées Liste partielle des questions générées, avec leurs statistiques: 21/41

  22. Choix de la meilleure question Algorithme de CART • L’entropie mesure l’impureté (ou désordre) d’un nœud/d’une feuille. • Choix de la meilleure question = plus grand gain en entropie. • Calcul de l’entropie: Ent(N) = -∑(pi * log(pi)) • N : un ensemble d’exemples • pi : proportion de la classe i dans N 22/41

  23. Exemple de meilleure question Meilleure question trouvée • « Le magazine est-il l’Equipe? » Entropie du père: 0,603 Entropie totale des fils: 0 + 0,302 = 0,302 Gain en entropie = 0,301 Oui Non 23/41

  24. Séparation en deux nœuds fils 2ème job MapReduce (itération) Paralléliser la séparation des données • A partir de la meilleure question, divise la base d’exemples du nœud en 2 nouveaux nœuds (fils droit et gauche). • Mapper: Pose la meilleure question à tous les exemples du nœud père. • Reducer: Écrit 2 nouveaux fichiers, l’un avec les exemples ayant répondu Oui, l’autre avec ceux ayant répondu Non. 24/41

  25. Exemple de séparation Séparation en 2 fichiers fils de données Fils gauche Fils droit 25/41

  26. Mise en place de la récursivité (1) Reproduire la procédure sur les nœuds fils • Les deux fils créés deviennent les pères de deux nouveaux arbres. • On reproduit sur eux la même procédure: • Génération des questions • Mise à jour des statistiques avec un nouveau job Map-Reduce 26/41

  27. Mise en place de la récursivité (2) 3ème job MapReduce (itération) Paralléliser la mise à jour des statistiques • A partir des bases d’exemples créées, met à jour les statistiques des classes contenues dans ces deux nouvelles bases. • Exactement le même travail que le 1er job MapReduce, appliqué aux 2 fichiers fils créés. 27/41

  28. Exemple de mise à jour des fils (1) Mise à jour du fils gauche et arrêt de la construction de l’arbre • Entropie nulle = nœud pur, donc on s’arrête ici. • Pas de questions générées. 28/41

  29. Exemple de mise à jour des fils (2) Mise à jour du fils droit et construction de l’arbre • Entropie élevée donc on génère les questions et leurs statistiques. • On choisit la meilleure question pour ces données. 29/41

  30. Arrêt de l’algorithme Stopper la récursivité sous les bonnes conditions • 3 conditions d’arrêt pour l’algorithme: • Nombre minimum d’exemples par feuille de l’arbre. • Gain minimum en entropie pour choisir une question et créer un nouveau nœud. • Profondeur maximale de l’arbre. • Ces données peuvent être paramétrées par l’utilisateur. 30/41

  31. Exemple d’arbre construit Arbre de décision construit à partir du fichier de données 31/41

  32. Et maintenant: plusieurs machines! • Nous avons prévu les éléments pour diminuer les temps de calcul: • Map – Reduce fait des calculs en parallèle. • Algorithmes les plus efficaces possibles. • Tests et développement sur une seule machine • Étape suivante: profiter pleinement d’Hadoop en faisant tourner l’application sur un réseau plusieurs machines. => Et pour cela, Hadoop répartit seul les tâches sur plusieurs machines, auto-adaptable à la taille du cluster. 32/41

  33. Un projet pas tout-à-fait abouti • L’algorithme a été adapté pour implémenter le concept Map-Reduce. • La construction de l’arbre fonctionne parfaitement sur une machine seule. • Mais problème lors du passage à un cluster de machines. 33/41

  34. Bilan du projet • Algorithme de construction de l’arbre. • Exploration des données. • Fonctionnement en local. • Fonctionnement sur un cluster d’une seule machine. • Résultat. • Visualisation. • Fonctionnement sur un cluster de plusieurs machines. 75 % 34/41

  35. 3. Planification finale

  36. Ordonnancement des tâches Respecter l’ordre des tâches • Liste des tâches établie précisément lors de la planification. • Découpage précis et très proche de ce qui a été fait par la suite. • Un ordonnancement légèrement approximatif, notamment au niveau de la parallélisationdes tâches. • Des tâches plus indépendantes les unes des autres que prévues. 36/41

  37. Durée et échéancedes tâches Contrôler le déroulement du projet • Durées non respectées pour certaines tâches. • Donc des échéances repoussées ou avancées. • Et pourtant peu d’impact sur le déroulement global du projet. • Temps nécessaire mal évalué/sous-estimé pour d’autres. • Dû à certaines technologies pas encore appréhendées au départ. • Tâche non aboutie. 37/41

  38. Charge totale de travail S’assurer du temps disponible et nécessaire • 1100 heures de travail nécessaires estimées. • 1300 heures de travail initialement estimées disponibles. • 1000 heures finalement réalisées. • Quota d’heures disponibles surestimé. • Planification initiale demandant trop d’heures par semaine, impossible avec un second semestre chargé. • Trouver des heures supplémentaires auraient permis d’aboutir quant au fonctionnement sur plusieurs machines. 38/41

  39. En bref • Temps de travail disponible surestimé. • Importance de la planification initiale, et de son suivi. • Permet la répartition des tâches, l’organisation du développement. • Donne une idée du temps nécessaire. • 1000h passées sur le projet, dont près de 600h sur la seule phase de développement. • Un total de 1500 commits. • Et près de 5000 lignes de code, réparties en 42 classes. 39/41

  40. 5. Conclusion

  41. Conclusion Fast and FuriousDecisionTree Induction • Un algorithme de classification supervisée, implémenté sur le principe Map-Reduce: • capable de traiter de gros volumes de données • dispatchées sur plusieurs machines • ne tenant pas en mémoire vive • de manière parallèle • Les données du Web sont enfin exploitables. 41/41

More Related