410 likes | 610 Views
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 ).
E N D
Fast and FuriousDecisionTree 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). • 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
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
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
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
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
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
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
Sorties de l’application (1) Production de règles hiérarchiques binaires Sortie graphique 10/41
Sorties de l’application (2) Sauvegarde du modèle dans un fichier XML Fichier XML 11/41
Sorties de l’application (3) Visualisation graphique du modèle produit Sortie arborescente 12/41
Une interface graphique Pilotage de l’application • par une interface graphique. • par ligne de commande. 13/41
2. Fonctionnement de l’application et technologies utilisées
Exemple d’apprentissage Classification thématique d’articles de presse Attributs Classe 15/41
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
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
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
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
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
Exemple de questions générées Liste partielle des questions générées, avec leurs statistiques: 21/41
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
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
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
Exemple de séparation Séparation en 2 fichiers fils de données Fils gauche Fils droit 25/41
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
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
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
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
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
Exemple d’arbre construit Arbre de décision construit à partir du fichier de données 31/41
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
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
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
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
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
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
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
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