View
52
Download
0
Category
Tags:
Preview:
DESCRIPTION
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 ). - PowerPoint PPT Presentation
Citation preview
Fast and Furious Decision Tree Induction
Andra BLAJNicolas DESFEUX
Emeline ESCOLIVETAlejandro GALECH MERCADO
Simon MANDEMENTRenaud PHILIPPE
Gareth THIVEUX
Problématique actuelle
2/41
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.
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 applicationDescription 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
ParallélisationExemple de fonctionnement de Map-Reduce pour compter les occurrences de mots dans un texte.
Fichier d’entrée:
1. savoir être et2. savoir faire3. sans faire savoir
5/41
L’importance de Map-Reduce
Fast and Furious Decision Tree Induction1. Fonctionnalités de l’outil
1. Données en entrées2. Arbre de décision3. Données en sortie4. Interface graphique
2. Fonctionnement de l’application et technologies utilisées1. Choix de l’algorithme2. Map-Reduce3. Initialisation 4. Choix de la meilleure question5. Séparation en deux noeuds fils6. Mise en place de la récursivité7. Arrêt de l’algorithme8. Hadoop9. Plusieurs machines
3. Planification finale4. Conclusion 6/41
1. Fonctionnalités de l’outil
Traiter les données en entréeUn 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
Base Médecine
• classes : maladies.• attributs : symptômes.
Classification de texte
• classes : sport, politique, automobile.• attributs : titre, nombre de lignes, auteur, magazine.
Objectif: un arbre de décisionCré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 binairesSortie graphique
10/41
Sorties de l’application (2)Sauvegarde du modèle dans un fichier XMLFichier XML
11/41
Sorties de l’application (3)Visualisation graphique du modèle produitSortie arborescente
12/41
Une interface graphiquePilotage de l’application• par une interface graphique.
• par ligne de commande.
13/41
2. Fonctionnement de l’application et technologies
utilisées
Exemple d’apprentissageClassification thématique d’articles de presse
Titre Nb Lignes Auteur Magazine SujetLe sport dans tout son art
12 T. Henry Equipe Sport
Strauss-Kahn en prison
50 P. Garcia Public Politique
Une victoire de plus
34 S. Lobe AutoPlus Automobile
Les bleus encore vaincus
24 M. Durand Equipe Sport
Attributs Classe
15/41
Algorithme d’induction pour un arbre de décisionAlgorithme de CART
16/41
Choix de l’algorithme (1)
3 conditions d’arrêt:• Profondeur maximale• Questions restantes• Nombre d’exemples
par feuilles+ Entropie
1) Générer les questions2) Evaluer toutes les questions3) Choisir la meilleure
entropie4) Construire
les fils si la condition d’arrêt est à false.
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
Choix de l’algorithme (2)
MapReduceMapper
• 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 Mapper?
MapReduceReducer
• 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
Qu’est-ce que le Reducer?
Initialisation - MapReduce1er 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
Liste partielle des questions générées, avec leurs statistiques:Question Sport Automobile Politique
Nombre de lignes > 34 ? 0 0 1
Le magazine est-il L’équipe ? 2 0 0
Le magazine est-il AutoPlus ? 0 1 0
L’auteur est-il S.Lobe? 0 1 0
Exemple de questions générées
21/41
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
Choix de la meilleure question
22/41
Exemple de meilleure questionClasse Nombre d’exemplesSport 2
Automobile 1Politique 1
Classe Nombre d’exemplesSport 2
Automobile 0Politique 0
Classe Nombre d’exemplesSport 0
Automobile 1Politique 1
Meilleure question trouvée• « Le magazine est-il l’Equipe? »
Oui Non
23/41
Entropie du père: 0,603Entropie totale des fils: 0 + 0,302 = 0,302Gain en entropie = 0,301
Séparation en deux nœuds fils2è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
Séparation en 2 fichiers fils de donnéesTitre Nb Lignes Auteur Magazine Sujet
Le sport dans tout son art
12 T. Henry Equipe Sport
Les bleus encore vaincus
24 M. Durand Equipe Sport
Titre Nb Lignes Auteur Magazine SujetStrauss-Kahn en
prison50 P. Garcia Public Politique
Une victoire de plus
34 S. Lobe AutoPlus Automobile
Fils gauche
Fils droit
Exemple de séparation
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
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.
Titre Nb Lignes Auteur Magazine SujetLe sport dans tout son art
12 T. Henry Equipe Sport
Les bleus encore vaincus
24 M. Durand Equipe Sport
Exemple de mise à jour des fils (1)
28/41
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.Titre Nb Lignes Auteur Magazine Sujet
Strauss-Kahn en prison 50 P. Garcia Public PolitiqueUne victoire de plus 34 S. Lobe AutoPlus Automobile
Question Politique AutomobileNb de lignes > 34 ? 1 0
Magazine = AutoPlus ? 0 1
Exemple de mise à jour des fils (2)
29/41
Stopper la récursivité sous les bonnes conditions• 3 conditions d’arrêt pour l’algorithme:
a. Nombre minimum d’exemples par feuille de l’arbre.b. Gain minimum en entropie pour choisir une question et
créer un nouveau nœud.c. Profondeur maximale de l’arbre.
• Ces données peuvent être paramétrées par l’utilisateur.
Arrêt de l’algorithme
30/41
Arbre de décision construit à partir du fichier de données
31/41
Exemple d’arbre construit
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.
34/41
75 %
3. Planification finale
Ordonnancement des tâchesRespecter 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élisation des tâches.• Des tâches plus indépendantes les unes des autres que
prévues.
36/41
Durée et échéance des tâchesContrô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 travailS’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
• 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.
En bref
39/41
5. Conclusion
ConclusionFast and Furious Decision Tree 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
Recommended