Fast and Furious Decision Tree Induction

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