290 likes | 439 Views
Fast and Furious Decision Tree Induction. INSA Rennes. Andra BLAJ Emeline ESCOLIVET Simon MANDEMENT Gareth THIVEUX Nicolas DESFEUX Renaud PHILIPPE. Fast and Furious Decision Tree Induction. Contexte Technologies utilisées lors du projet Apprentissage automatique
E N D
Fast and FuriousDecisionTree Induction INSA Rennes Andra BLAJ Emeline ESCOLIVET Simon MANDEMENT Gareth THIVEUX Nicolas DESFEUX Renaud PHILIPPE
Fast and FuriousDecisionTree Induction • Contexte • Technologies utilisées lors du projet • Apprentissage automatique • Arbres de décision • Map-Reduce • Hadoop • Spécifications fonctionnelles • Données présentes en entrée • Données en sortie • Arbres de décision dans l’application • Parallélisation • Planification initiale • Conclusion
Contexte (1) Origines du projet : • Projet lié aux activités de recherche de l’IRISA. • EquipeTexmex: exploitation de documents multimédia. • EquipeMyriads: développement et administration de systèmes distribués à large échelle.
Contexte (2) Objectifs : • Créer des arbres aidant à la décision. • Utiliser des fichiers de données volumineux pour trouver des règles de décision. • Généraliser le fonctionnement pour l’adapter à tous les domaines.
Spécifications fonctionnelles (1) Données en entrée • 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; 6
Spécifications fonctionnelles (2) • 2 fichiers en entrée: • .names : • la liste des annotations possibles • une description du contenu du fichier de données • une description du type des descripteurs ou des attributs • .data : • les données et les annotations associées Fichiers en entrée Grippe, Rhume. age : continuous : ignore. boutons : discrete : cutoff = 15. imc : continuous. 52, Oui, 25, Grippe. 45, Oui, 28, Rhume. 28, Non, 20, Rhume. 7
Technologies utilisées (1) • Discipline où un outil technologique est capable d’apprendre par lui-même. • Sorte d’intelligence artificielle. • Plusieurs degrés de supervision. • Base de données d’exemples. • Décisions d’étiquetage précises. Apprentissage Automatique Définition - Fonctionnement
Technologies utilisées (2) • Exemple déjà étiqueté : adapté à l’apprentissage automatique supervisé. • Efficace avec un grand volume de données : • Processus d’apprentissage complet, • Étiquetage précis. • Capable d’étiqueter de nouveaux exemples automatiquement. Applications dans notre projet
Technologies utilisées (3) • Outils d’aide à la décision et à l’exploration de données. • Représentation à l’aide de nœuds et de feuilles. • Populaire et simple d’utilisation. Arbres de décisions Définition - Fonctionnement
Technologies utilisées (4) • Facile à comprendre et à utiliser. • Taille dépendante du nombre de questions, et non de la taille des données. • Lisibilité du rendu. • Construction simple de rendu visuel (avec des fichier XML et CSS par exemple). Avantage pour notre projet
Spécifications fonctionnelles (5) • Nœuds - chaque nœud correspond à une question sur un attribut et à un ensemble d’exemples; • Branches - chaque branche part d’un nœud et correspond à une réponse possible à la question posée en ce nœud; • Feuilles - nœuds d’où ne part aucune branche (correspond à une classe). Les arbres de décision dans l’application
Spécifications fonctionnelles (6) • Etapes de la construction d’un arbre: • Apprendre une suite de questions/réponses la plus "efficace" possible. • Isoler les classes. • Organiser les questions/réponses sous la forme d’un arbre.
Spécifications fonctionnelles (3) • type discrete : 1 question par valeur de l’attribut. • type continuous : pour une valeur donnée de l’attribut, la question cherche à déterminer combien d’exemples ont une valeur supérieur ou inférieure à celle-ci. • type text : 3 paramètres pris en compte • expert_length : nombre de mots à rechercher • expert_type : F-gram, S-gram, N-gram • expert_level : 3 niveaux de recherche Génération des questions
Spécifications fonctionnelles (4) • Format xml • Visualisation graphique 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>
Technologies utilisées (5) • Opération exécutée en parallèle -> chaque nœud travaille indépendamment des autres, sur une partie du fichier d'entrée. • Association à un couple ( clé , valeur ). • Opération spécifique sur chaque élément (ligne). • Traitement différent selon le type: Discrète, Continue ou Texte. MapReduce Partie Map
Technologies utilisées (6) • Nœuds esclaves font remonter l'information. • Calcul par les nœuds parents. • Groupement des couples ayant la même clé. • Le nœud origine peut, à la fin de l'opération Reduce, donner une réponse. MapReduce Partie Reduce
Spécifications fonctionnelles (8) Parallélisation Exemple de fonctionnement de MapReduce, pour compter les occurrences de mots dans un texte. Fichier d’entrée: 1. savoir être et 2. savoir faire 3. sans faire savoir
Technologies utilisées (7) • Projet libre qui permet une implémentation de MapReduce. • Un nœud maitre et des nœuds esclaves. • Fractionnement du traitement sur différentes machines. Hadoop
Technologies utilisées (8) • Système de fichier 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
Spécifications fonctionnelles (9) • 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.
Planification initiale (1) 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 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 à du Planning Poker
Conclusion Fast and FuriousDecisionTree Induction : • Projet à l’origine d’équipes de l’IRISA. • Création des arbres aidant à la décision. • Généralisation le fonctionnement pour l’adapter à tous les domaines. • Traitement des fichiers de données volumineux grâce à une parallélisation des calculs gérée par les technologies Hadoop/MapReduce. • Réussite et respect des délais => une bonne planification et un suivi régulier.