Fast and Furious Decision Tree Induction

Slides:



Advertisements
Présentations similaires
Introduction Rétro ingénierie d’interfaces graphiques
Advertisements

La Gestion de la Configuration
APPRENDRE PAR PROJETS EN MATERNELLE.
Algèbre de composants : une approche fonctionnelle à la sémantique de documents Bart Lamiroy LORIA/INPL QGar - École des Mines de Nancy.
Classification et prédiction
Classification et prédiction
Etude du cas de la motorisation hybride
Story-board version 1.1 Statut : à valider Rédacteur : Nicole Djuissi
Introduction Pour concrétiser l’enseignement assisté par ordinateur
Vue d'ensemble Vue d'ensemble de la sécurité dans Windows Server 2003
ANALYSE DE POSE CONDITIONS D’UTILISATION
P.P.R.E. Programme personnalisé de réussite éducative Un dispositif de soutien.
R. Saint-Paul, G. Raschia and N. Mouaddib IRIN, Nantes (France)
Projet 4info.
CREATION DE FEUILLE DE STYLE pour structuré le document XML
Évaluer pour faire apprendre dans une approche par compétences
Interface Homme Machine IHM Pro
Rendre utile la consigne sans nuire à l’autonomie
GP Solution est une entreprise québécoise qui a développé un outil GRC(CRM) dédié aux PME permettant d'effectuer un suivi serré des communications, dossiers,
Initiation au système d’information et aux bases de données
Le 8 mars Notre vision du web-to-print. le 8 mars Information pour le système Prisme Technologies Prisme Technologies se spécialise dans.
Initiation au système d’information et aux bases de données
Cartes Conceptuelles Daniel Peraya
GED Masters: Gestion Électronique de Documents
Apprendre à partir des observations
Apprentissage du jeu de morpion
Etude des Technologies du Web services
OCaml – Les arbres L3 MI.
Parcours de formation SIN-7
2nd Pro Maintenance des Véhicules Automobiles
La problématique de la recherche de document Journée de formation 29 février 2008.
Xpath XML Path language par Yves Bekkers
Fast and Furious Decision Tree Induction
Fast and Furious Decision Tree Induction
Fast and Furious Decision Tree Induction Soutenance de planification
3. Spécifications fonctionnelles
Présentation du mémoire
Gestion de Fichiers Tri Interne Efficace et Tri Externe.
Les 6 étapes de la recherche…
Les Arbres de décision ou régression
Aude Dufresne Université de Montréal MATI - CIRTA Centre dExcellence sur le Téléapprentissage – VRQ – LORNET (CRSNG) Soutien aux apprenants des outils,
Mise en oeuvre des MMCs L'utilisation des MMCs en reconnaissance des formes s'effectue en trois étapes : définition de la topologie de la chaîne de Markov,
Projet de Master première année 2007 / 2008
GPA750 – Gestion de Projets
Apprentissage par arbre de décision
Ingénierie Système en SysML appliquée à la rédaction du cahier des charges Y. Le Gallou Séminaire académique STI2D - Calais – 1er avril 2014.
Gestion de Projet © GlobalProd’.
La veille numérique : un outil pour s'informer intelligemment &
Paradigmes des Langages de Programmation
Elabore par BELKADHI ABIR BEN HASSEN SALMA CHEBBI MARWA
Calcul parallèle => partitionner les données en sous-groupes associés aux processeurs. P0 P2 P1.
Aide personnalisée Démarche Constat : Eléments d’évaluation, puis la différenciation s’avère une aide insuffisante. Définition d’objectifs s’inspirant.
1 Alain Casali Christian Ernst Extraction de Règles de Corrélation Décisionnelles 29 Janvier 2009.
Arbres binaires et tables de hachage
Fast and Furious Decision Tree Induction Projet 4INFO 1 Andra BLAJ Nicolas DESFEUX Emeline ESCOLIVET Simon MANDEMENT Renaud PHILIPPE Gareth THIVEUX Encadreurs.
Extrait du Referentiel BTS Systèmes numériques Options : Informatique et réseaux et Électronique et communication S1 à S9 Définition des savoirs et savoir-faire.
Modèle de conception et de production à la SOFAD Journée d’échange du CLIFAD Trois-Rivières, le 3 décembre 2004 Jean-Simon Labrecque, Chargé de projets.
Olivier Leclair, Université Laval Un algorithme de fouille dans une représentation des données par objets: une application médicale SIMON, Arnaud.
EPOSTL 1. 2 Les origines du PEPELF EPOSTL 3 4 Intentions du projet Fixer des objectifs à la formation des enseignants  compétences-clés Formuler des.
Services en Text Mining. Introduction : Qui est Mentis ? Mentis a été fondée en 2005 comme une société spin-off du Laboratoire d'I ntelligence Artificielle.
L T I Laboratoire de Téléinformatique 2 Projet de semestre Parseur XML basé sur la DTD : Buts –Utiliser la grammaire définissant un type de fichiers XML.
Thème du projet: Noël franco-hispano-germanique Faire ensemble: Niveau : 5èmes – 4èmes.
Visualisation de données complexes en 3D Projet d'algorithmique et de Langage C Auteurs: Jonathan Courtois Pierre Tanguy Encadrant: Mohammed Haouach
© Copyright-CNP-EFII-Paris-1998
Vous présente en quelques réalisations un réel savoir-faire, le fruit de longues années d’expériences, aujourd’hui à votre service. Toutes les fonctionnalités.
CHAPITRE 2 LES SITUATIONS FONCTIONNELLES
La différenciation pédagogique
131, rue de Créqui, Lyon 6ème « L’organisation est une machine à maximiser les forces humaines» - Peter Drucker (économiste )
Vous présente en quelques réalisations un réel savoir-faire, le fruit de longues années d’expériences, aujourd’hui à votre service. Toutes les fonctionnalités.
Les dossiers patients d’un hôpital contiennent les attributs suivants : – nom – code postal – pression systolique en mm de mercure. – s’il est porteur.
Transcription de la présentation:

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 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

1. Contexte

Contexte (1) Origines du projet : Projet lié aux activités de recherche de l’IRISA. Equipe Texmex: exploitation de documents multimédia. Equipe Myriads: 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; « Fast and Furious Decision Tree Induction » est une application générique qui doit pouvoir traiter des données issues de divers domaines (bioinformatique, ensemble de textes, etc.). C’est pourquoi nous allons développer afin de pouvoir traiter trois types d’attributs différents: – discrete : ce qui signifie que les données présentes dans cette colonne devront forcément faire partie d’une liste prédéfinie (ex : oui, non, je ne sais pas), – continuous : valeurs numériques ordonnées (par exemple, dans notre base médicale : l’IMC), – text : ce qui veut dire que les informations présentes dans ces colonnes sont des phrases, des expressions (par exemple : « merci NCMS joël PRENOM collado NPI »est une expression que l’on peut être amené à rencontrer. 6

Spécifications fonctionnelles (2) Fichiers en entrée 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 Grippe, Rhume. age : continuous : ignore. boutons : discrete : cutoff = 15. imc : continuous. L’application recevra les données en entrée sous forme de deux fichiers. Un fichier « .data » contiendra les données et les annotations associées et un fichier « .names » détiendra la liste des annotations possibles et une description du contenu du fichier de données, du type des descripteurs ou des attributs. Nous allons donc décrire plus précisément le contenu de ces deux fichiers. Dans le fichier « .names », la première ligne correspond à la liste de l’ensemble des annotations que l’on peut trouver dans la base de données. Comme dans le premier fichier, chaque annotation est séparée par une virgule et la liste se finit par un point. Nous pourrons trouver ensuite, dans le fichier, une description des colonnes (type, caractéristique). nom_colonne : type_colonne : options_facultatives Le fichier « .data » contient l’ensemble des exemples que l’on veut fournir à l’application. Dans le fichier .data, chaque ligne représente un exemple. (ex: un ligne se décompose de la façon suivante : Age, toux, maux de tête, IMC 1, diagnostic) Les caractéristiques (dans un ordre précis) et l’annotation (unique, et toujours en fin de ligne), sont séparés par des virgules. Un point en fin de ligne permet d’indiquer le fin de l’exemple. Cette syntaxe particulière est importante pour permettre une bonne lecture du fichier en entrée. En effet, l’ordre des caractéristiques, leur type, et leurs particularités sont décrites dans le fichier « .names », il est donc important que le fichier « .data » soit correctement renseigné, afin que chaque colonne puisse être correctement identifiée. 52, Oui, 25, Grippe. 45, Oui, 28, Rhume. 28, Non, 20, Rhume. 7

2. Technologies utilisées lors du projet

Technologies utilisées (1) Apprentissage Automatique Définition - Fonctionnement 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. L’apprentissage automatique est une discipline de l’informatique où un logiciel est capable d’apprendre par lui-même. C’est-à-dire de reproduire des comportements qu’il aura déjà vu ou déduit. On peut comparer ça à une sorte d’intelligence artificielle. Il existe plusieurs type d’apprentissage automatique : plus ou moins supervisé. Pour effectuer un apprentissage automatique, il faut une base de données d’exemple. Un apprentissage automatique où l’ensemble des données d’exemples sont étiquetées est dit supervisé. Les classes de réponse, où l’outil va classer les exemples, existent déjà. Pour un apprentissage automatique non supervisé, l’outil va devoir lui-même créer les classe de réponse. L’idée est d’obtenir à la fin de l’utilisation, un outil capable de prendre des décisions d’étiquetage précise si on lui fournit un nouvel exemple actuellement non classé. Plusieurs étapes : Observation, Construction, utilsation.

Technologies utilisées (2) Applications dans notre projet 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. Dans le cadre de notre projet, nous allons utilisé l’apprentissage automatique supervisé. En effet, ce type d’apprentissage est bien adapté aux données qui nous sont fourni, où tout les exemples sont déjà étiquetés. De plus, on a un grand volume d’exemple, ce qui va permettre un étiquetage précis, puisque le processus d’apprentissage sera assez complet. Plus il y a d’exemple étiquetés à notre disposition, plus l’analyse peut être fine. L’autre intérêt réside dans le fait que l’apprentissage automatique va fournir un modèle que l’on pourra utilisé pour tester de nouveaux exemples.

Technologies utilisées (3) Arbres de décisions Définition - Fonctionnement 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. Modéliser un phénomène mesuré simplement, graphiquement et rapidement. Utilisé par beaucoup de monde. Concept que tout le monde comprend, sans même avoir des notions d’informatique !

Technologies utilisées (4) Avantage pour notre projet 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). Facile à comprendre et à utiliser. Indépendant de la quantité de données, mais dépendant du nombre d’attributs. Il est facile de modéliser un arbre en informatique, grâce à des langages très répandu, tel que le XML. On peut aussi rendre le XML plus « visuel » grâce à du CSS.

3. Spécifications fonctionnelles

Spécifications fonctionnelles (5) Les arbres de décision dans l’application 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). Dans cette partie nous allons vous décrire le fonctionnement de la méthode des arbres de décision au sein de l’application. Dans un arbre de décision: 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 (par exemple, l’algorithme CART considère 2 branches par nœud et l’algorithme ID3 considère autant de branches que de valeurs possibles pour l’attribut étudié) ; Feuilles – nœuds d’où ne part aucune branche (correspond à une classe).

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. Plus concrètement, les étapes pour la construction d’un arbre seront : – 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 ; On va démarrer avec un arbre vide et construire l’arbre de manière inductive et descendante. On va étudier l’ensemble des cas pour lesquels la classe est connue et on va chercher en étudiant ces cas les caractéristiques qui distinguent le mieux la classe OUI de la classe NON. Pour choisir la variable de segmentation sur un nœud, l’algorithme teste toutes les variables potentielles et choisit celle qui maximise un critère donné. Il faut donc que le critère utilisé caractérise la pureté (ou le gain en pureté) lors du passage du sommet à segmenter vers les feuilles produites par la segmentation. Il existe un grand nombre de critères informationnels ou statistiques, les plus utilisés sont l’entropie de Shannon et le Gain de Gini. Nous on va utiliser l’entropie de Shannon.

Spécifications fonctionnelles (3) Génération des questions 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 Pour les descripteurs de type discrete, nous générons à partir des exemples, toutes les questions sur la valeur de l’attribut. Pour les descripteurs de type continuous, nous sélectionnons tous les exemples dont l’attribut testé est supérieur ou inférieur à une valeur donnée (ou calculée). Pour les descripteurs de type text, trois paramètres doivent être pris en compte lors de la génération des questions posées par la méthode des arbres de décision : – expert_length : le nombre de mots à dans l’expression à rechercher (ex : parti socialiste = 2 mots). On parle souvent d’expression de longueur N (N étant le nombre de mot), – expert_type : le type de recherche : – F-gram (Full word-grams of maximal length only) : recherche des expressions d’exactement N mots consécutifs (et pas moins, contrairement à N-gram), – N-gram (all full word-grams up to a maximal length) : recherche dans un premier temps, tous les mots un par un de l’expression, puis tous les couples de mots consécutifs et ainsi de suite jusqu’à constituer des ensembles de N (défini précédemment) mots consécutifs, – S-gram (all Sparse word-grams up to a maximal length) : recherche Ngram + recherche des expressions de trois à N mots consécutifs où un ou plusieurs des mots est remplacé par un « blanc » (un mot quelconque). – expert_level : le niveau de recherche : Il existe généralement plusieurs niveaux de recherche. Ils dépendent du type de texte que l’on a, et de la précision de recherche que l’on veut obtenir (par exemple, si on cherche un verbe, est-il important qu’il soit conjugué ?). On peut définir par exemple 3 niveaux. – niveau 1 : recherche des mots exacts dans le texte (ex : "Un incendie s’est déclaré à Paris") – niveau 2 : recherche des natures et fonctions des mots (ex : "Un NOM COMMUN s’est déclaré à VILLE") – niveau 3 : recherche des radicaux des mots, verbes ou noms (ex : "Un incendie s’ETRE DECLARER à Paris")

Spécifications fonctionnelles (4) Données en sortie Format xml Visualisation graphique <? 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> Notre application doit être capable de générer un fichier de sortie utilisable. L’objectif est de rendre un fichier que l’utilisateur pourra consulter : avoir une vision de ce qu’est l’arbre, et pouvoir l’interroger (lui fournir les caractéristiques, et avoir l’étiquette la plus probable). Nous avons donc choisi de représenter notre arbre de décision sous forme d’un fichier XML, format qui nous permettra de définir facilement la structure de nos arbres, créant ainsi un fichier lisible décrivant les résultats et les probabilités d’obtenir ce résultat. Le XML nous permettra d’obtenir en sortie un fichier qui n’est pas « opaque » donc facilement analysable, et surtout utilisable en dehors de l’application. De plus, c’est un format très répandu et utilisé, et donc probablement mieux reconnu et compris par les utilisateurs, et pour lequel il existe beaucoup d’outils. Pour pouvoir naviguer dans l ’arbre, on utilise un id associe a chaque Noeud de l ’arbre.

Technologies utilisées (5) MapReduce Partie Map 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.

Technologies utilisées (6) MapReduce Partie Reduce 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.

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 Lors de ce projet, nous demanderons à nos machines d’effectuer des calculs très longs. L’une des spécifications de ce projet est de réduire le temps de construction des questions de notre arbre de décision, ainsi que le temps de parcours de celui-ci. En utilisant une seule machine, il serait difficile de construire rapidement ces arbres de décision. C’est pourquoi notre seconde méthode de parallélisation consistera en l’utilisation d’un cluster de machines. Et encore une fois c’est Hadoop qui va nous permettre de le réaliser. Hadoop permet également la répartition de plusieurs "job" sur plusieurs machines connectées. Hadoop utilise pour cela un nœud maître qui envoie les "job" à effectuer à des nœuds esclaves qui effectuent ces tâches puis renvoient le résultat.

Technologies utilisées (7) Hadoop 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.

Technologies utilisées (8) Hadoop 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.

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.

Spécifications fonctionnelles (7) Concrètement, notre application fonctionnera ainsi : – étape no 1 : L’application lit les fichiers en entrée et génère toutes les questions possibles à partir de la base de données et des paramètres précisé par l’utilisateur. Nous pouvons donc trouver des questions sur des données discrètes, continues ou encore textuelles. Une fois toutes les questions générées, nous pouvons alors calculer l’entropie liée à chaque réponse et ainsi en déduire le gain en entropie du découpage qu’elles permettent d’obtenir si nous choisissons de poser telle ou telle question. – étape no 2 : Après avoir effectué tous ces calculs, nous pouvons donc enfin décider de la meilleure question à poser, c’est-à-dire celle qui apporte le meilleur gain en entropie en application. Une fois, la question à poser trouvée, nous passons à l’étape no 3. Cependant plusieurs cas signifient l’arrêt de l’algorithme. Tout d’abord, si l’ensemble des individus impliquent le même résultat ou encore s’il n’y a plus de question à poser ou que le gain en entropie est nul ou insuffisant (seuil défini par l’utilisateur). Dans ces cas, nous passons à l’étape no 5. – étape no 3 : Nous entamons cette étape no 3 si et seulement si une question a pu être posée et donc si aucun fichier XML n’a été généré. Cette étape consiste à récupérer la base de données sur laquelle la question est posée et à la diviser en deux. Les deux parties présentes sont définies par les réponses à la question. – étape no 4 : On va parcourir le fichier des données (.data) pour pouvoir générer toutes les questions possibles, à l’exception près que le fichier des données concerné sera celui de l’arbre fils, c’est-à-dire qu’on parcourra les bases de données des deux fils, afin de construire un arbre complet. De plus, un nouveau tri sera effectué sur l’ensemble des questions générées (car une question ne peut pas être posée deux fois). Après avoir effectué ce tri, nous pouvons donc calculer l’entropie et le gain en entropie de chaque question. Une fois cette étape achevée, on retourne à l’étape no 2 pour chacun des deux fils. – étape no 5 : L’algorithme des arbres de décision ayant abouti, il ne nous reste plus qu’à afficher le ou le(s) résultats trouvé(s). Ces derniers sont alors générés dans le format xml vu dans la première partie de ce rapport. On peut aussi trouver dans ce fichier toutes les étapes et toutes les questions qui ont été posées pour arriver à ce(s) résultat(s).

4. Planification initiale

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

Planification initiale (2)

5. Conclusion

Conclusion Fast and Furious Decision Tree 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.