Institut National des Sciences Appliquées de Rennes Dossier de planification initiale Encadreurs : Nikolaos Parlavantzas - Christian Raymond Fast and Furious Decision Tree Induction Andra Blaj Nicolas Desfeux Emeline Escolivet Simon Mandement Renaud Philippe Gareth Thiveux Rennes, le 10 décembre 2010
Table des matières Présentation du projet 3 1 Présentation du projet 3 1.1 Contexte du projet... 3 1.2 Objectifs du projet... 4 2 Gestion de projet 5 2.1 Pilotage... 5 2.2 Méthode de planification... 5 2.2.1 Définir le calendrier de travail... 5 2.2.2 Déterminer les ressources... 5 2.2.3 Déterminer les tâches à réaliser et les ordonner... 5 2.2.4 Créer le diagramme de Gantt... 5 2.2.5 Analyse des risques... 5 3 Répartition des tâches 6 3.1 Calendrier et temps de travail... 6 3.2 Ordonnancement des tâches... 6 3.3 Diagramme de Gantt... 6 3.4 Ressources... 8 3.5 Analyse des risques... 8 4 Conclusion 9 Annexe 10 2
1 Présentation du projet 1.1 Contexte du projet Notre projet s intitule «Fast and Furious Decision Tree Induction». Ce nom est tiré de l algorithme des arbres de décision, car en effet, l application que nous devons développer, exploite directement cet algorithme en tant que méthode d apprentissage automatique supervisée. Le but de ce projet est de créer une application d aide à la décision. En outre, à partir d une base de données (dans le format.data), d un fichier descriptif de cette base (dans le format.names) et de quelques données au sujet d un exemple, notre outil devra être capable de nous donner en sortie un fichier de réponse (dans le format.xml) où figuereront une ou plusieurs solutions possibles accompagnées de la probabilité que ce soit la bonne réponse pour notre question. Pour mieux comprendre notre application, nous prendrons l exemple concret d une base de données médicale. Le but de notre projet sera alors de trouver le diagnostic d un patient à partir de ses symptômes et d une base de données qu un ou plusieurs médecins auront crée au fur et à mesure des années. Cette base regroupera les types de symptômes (toux, boutons, etc.), les caractéristiques (âge, IMC, fumeur, etc.) de différents patients et le diagnostic qui avait été fait. L ensemble des données récoltées dans cette base permettra de trouver les maladies les plus probables, par l exploitation des arbres de décision associée à la liste des symptômes de l individu dont l on souhaite faire un diagnostic. Ces arbres dits de «décision»sont capables de produire, à partir d une base de données d exemples, des règles de décision sous forme de questions binaires, ayant donc pour seules réponses possibles «oui»ou «non». On aboutit ainsi à un découpage de la population des exemples en deux parties. La récursivité de cet algorithme induira une diminution progressive des exemples dans les populations venant d être crées. Ceci s explique par le fait que sur chaque nœud de l arbre, une nouvelle question binaire sera posée et l ensemble des exemples sera à nouveau divisé en deux. Pour choisir la question, on sélectionne les règles comme étant les meilleures selon le gain en entropie qu elles apportent les unes par rapport aux autres, vis-à-vis de l échantillon d exemples ciblé. Au final, cette méthode d apprentissage automatique supervisé devra être capable, par le biais de notre application, de reproduire le travail d un expert pour aboutir aux mêmes conclusions. La seule différence qui doit appaître entre l Homme et la machine est la vitesse d exécution. En effet, l objectif de notre outil est de permettre à l Homme de prendre plus rapidement les bonnes décisions. Par analogie avec notre exemple médical, notre application devra apprendre a établir un diagnostic grâce à une base de données de symptomes annotés afin de fournir un diagnostic rapide mais fiable. Cependant dans le cadre de notre projet, l analyse portera sur des documents textuels. On pourra alors envisager de tirer des mots clefs et classifier les textes selon différents thèmes ou catégories. Ce sujet est actuellement lié aux activités de recherche de deux équipes de l IRISA, l Institut de Recherche en Informatique et Systèmes Aléatoires, situé sur le campus de Beaulieu, dans la ville de Rennes (35). L IRISA n est autre qu une UMR, Unité Mixte de Recherche, fondée en 1975 et aujourd hui associée à l INRIA et partenaire des établissements tels que le CNRS, l Université de Rennes 1, l INSA de Rennes ou encore l ENS Cachan (antenne de Bretagne). 3
Les équipes concernées, et à l initiative de ce projet, sont donc Texmex, équipe de laquelle fait partie M. Christian Raymond, et qui travaille sur l exploitation des documents multimédias, et l équipe Myriads, qui compte parmi ses membres M. Nikolaos Parlavantzas, et qui s intéresse au développement et à l administration de systèmes distribués à large échelle. 1.2 Objectifs du projet Bien que les arbres de décisions aient pu être maintes et maintes fois l objet de recherches, les implémentations que l on peut actuellement recenser ne correspondent pas à toutes les attentes des utilisateurs. Nous pouvons entre autre citer l algorithme Quinlan C4.5 1, dont les sources sont librement disponibles, qui permet de générer des arbres de décision, mais qui ne travaillent que sur des valeurs continues. Il n est donc pas adapté au traitement de textes. Il existe également le LIA-SCT 2, un arbre de classification sémantique qui a été spécifiquement conçu pour le texte, mais en revanche pas pour traiter d importants volumes de données. Notre travail sur ce sujet n est donc pas une simple application de l algorithme des arbres de décision. En effet, nous tâcherons d optimiser leur utilisation sur des bases de données dont le volume d exemples sera très important. Le fait que nous traitions, dans le cadre de notre projet, du texte, notre application devra être capable de gérer de grands volumes de données. De plus, le nombre de questions génerées sera directement lié á la taille du vocabulaire utilisé dans les textes. En conséquence, cet important nombre de questions induira un traitement de l algorithme de génération trés gourmant, en termes de temps et de mémoire, surtout si l on suppose que toutes les données sont situées en mémoire vive. Dans ce dernier cas, le traitement d ensembles de données est alors trop volumineux, voire impossible. L objectif majeur de notre projet est alors de pouvoir développer une application, avant tout générique, d aide á la prise de décision gâce à l exploitation de l algorithme des arbres de décision auquel on associera des méthodes de parallélisation. Cette association permettra ainsi de minimiser les temps d exécution et de traiter de gros volumes de données en entree. Pour notre application finale, un second intérêt résidera dans la personnalisation de notre outil. Nous devrons être capable de proposer à l utilisateur une utilisation simple et agréable, un fichier de sortie interprétable par les non-initiés, ainsi qu un plus large panel de paramétrages et d options que les outils déjà présents et disponibles sur Internet. Dans ce rapport, nous allons vous présenter la plannification initiale de notre projet. 1. Développé par J.R. Quinlan dans C4.5 : programs for machine learning. Plus de détails : [?] 2. «Semantic Classification Tree» développé par le Laboratorie Informatique d Avignon [?]. Téléchargement : [?] 4
2 Gestion de projet Dans cette partie nous décrivons la gestion de notre projet jusqu à présent et surtout pour les mois à venir, tenant en compte le pilotage du projet et la méthode de planification que nous avons choisis. 2.1 Pilotage Concernant le type de pilotage adapté à notre projet, nous avons choisi celui basé sur les ressources, car notre objectif est de faire le plus de travail possible dans l intervalle de temps donné, en fonction des ressources humaines impliquées. En conséquence, les ressources définies pour la suite du travail sont six développeurs, car notre équipe est constituée de six étudiants avec une implication équilibrée au cours de l année. Le chef de projet changera périodiquement, suivant les différentes étapes de réalisation et les aptitudes de chacun d entre nous six. 2.2 Méthode de planification Pour planifier le développement des arbres de décision, nous avons suivi une méthode de planification classique. Cette méthode définit plusieurs étapes. 2.2.1 Définir le calendrier de travail Le calendrier de travail et ses paramètres définissent les périodes ouvrées et les périodes chomées sur lesquelles les développeurs planifient les tâches d un projet. Nous obtenons ainsi les jours de travail disponibles. 2.2.2 Déterminer les ressources Il s agit de déterminer les personnes disponibles qui peuvent travailler sur le projet. Dans notre cas, l équipe est formée de six étudiants. 2.2.3 Déterminer les tâches à réaliser et les ordonner Le découpage d un projet en sous-ensembles élémentaires consiste à découper le projet en sous-ensembles d activité à fonction simple : les tâches. Les tâches doivent etre ordonnées en fonction de leur priorité et des dépendances qu il existe entre elles. 2.2.4 Créer le diagramme de Gantt L étape suivante consiste à construire le diagramme de Gantt correspondant à l ordonnacement réalisé précédemment. 2.2.5 Analyse des risques Il s agit d effectuer une analyse des risques pouvant compromettre le déroulement du projet. Cette analyse permet de mettre en évidence les options de secours en cas de problème. 5
3 Répartition des tâches 3.1 Calendrier et temps de travail Afin de mettre en place une plannification la plus précise possible, nous avons tout d abord, déterminé notre calendrier et notre temps de travail sur ce projet. Plus précisemment, pour aboutir á un calendrier correct, nous nous sommes posés une question, à savoir quels jours nous seront disponibles pour travailler sur ce projet. Nous nous sommes tous mis d accord sur le fait qu il nous sera impossible de nous consacrer au projet durant les semaines des partiels, et aussi une semaine avant chacune d elles afin de nous préparer au mieux aux examens. De plus, la plupart d entre nous faisant partie d associations telles que le gala et le forum Grand Ouest, il nous a fallu supprimé quelques journées dans le calendrier afin d organiser ces événements. Et enfin, nous avons également décidé d enlever de ce calendrier quelques jours durant les vacances, car ces quelques journées seront consacrées soit à la préparation des examens, soit au repos. De plus, les vacances ne sont pas le moment idéal pour travailler sur le projet, car chacun habitant á un endroit différent en France ou en Roumanie, il nous sera difficile d avancer efficacement. Le fait d avoir déjà rédigé quelques rapports et d avoir eu la possibilité d avancer dans le code de notre application, nous a permis de faire une première évaluation du nombre d heures à passer non seulement sur les prochains rapports mais aussi sur le code. En conséquence, nous avons fixé une moyenne de 5 heures de travail par semaine et 25 heures pendant les semaines blanches. Ainsi, nous avons pu définir un calendrier proche de la réalite 3.2 Ordonnancement des tâches Une tâche est une activité constituant un tout logique dans le projet. Une tâche doit avoir une durée inférieure à 4 semaines pour pouvoir maitriser son avancement réel. Par défaut, une tâche est représentée par un rectangle bleu sur le diagramme de GANTT. Un ordonnacement des tâches réalisé sous MS Project est mis en annexe pour illustrer les tâches définies. 3.3 Diagramme de Gantt Cet affichage et l affichage par défaut à l ouverture d un planning. L affichage Diagramme de Gantt présente des informations concernant les tâches du projet, à la fois sous la forme de texte et de graphiques à barres. Le diagramme de Gantt ci-dessous réalisé sous MS Project présente les interactions et le recouvrement des tâches principales définies. 6
7 FIGURE 1 Diagramme de Gantt
3.4 Ressources Notre groupe est formé de six étudiants, les ressources disponibles pour ce projet. En conséquance, on a calculé que chaque ressource devrait passer au total environ 200 heures sur le projet. 3.5 Analyse des risques Un projet ne se déroulant jamais exactement comme il avait été planifié, il est important de prévoir dès la planification les risques encourus pendant son déroulement. Cela permet de connaitre les retards les plus probables dans l avancement des tâches. Ainsi, il est possible de les anticiper et de pouvoir réagir au plus tot pour s y adapter et limiter l effet boule de neige. Le premier risque technologique auquel nous serons confrontés lors de la phase de développement du projet concerne les clusters de Hadoop, le framework sous lequel on va traiter les données. Hadoop devra fonctionner sur plusieurs machines simultanément, donc il existe la possibilité que l un des clusters ne fonctionne plus. 8
4 Conclusion Meme si nous avons cherché (et réussi) à obtenir une liste de tâches assez précise pour constituer une planification, il faut s attendre à devoir réajuster cette liste de tâches et par conséquent la planification qui s ensuit. La planification initialement définie nous permet toutefois d identifier les grands modules du projet et de donner une première distribution du travail entre les six membres de l équipe. 9
Annexe 10
11 FIGURE 2 Ordonnancement des tâches
12 FIGURE 3 Ordonnancement des tâches
13 FIGURE 4 Ordonnancement des tâches
14 FIGURE 5 Ordonnancement des tâches