Télécharger
Transcription
Télécharger
TP1 - Découverte du logiciel Knime 1 Introduction et objectifs du TP Les données sont devenues une matière première qu’il faut indispensablement maîtriser pour mieux comprendre le monde dans lequel nous vivons et ainsi devenir plus compétitifs. La fouille de données prétend répondre à ce besoin et se décline dans de nombreux secteurs comme nous le verrons dans ce module. Seulement, l’analyse de données, souvent très volumineuses, ne peut être accomplie manuellement. L’existence d’outils informatiques adaptés est donc nécessaires. Dans ce module, nous utiliserons un logiciel bien connu dans le monde de la fouille de données : Knime. Ce logiciel open-source utilisé par plus de 15000 utilisateurs dans le monde provenant de différents milieux (universitaires, recherche, petites et grandes entreprises) dans différents secteurs (banque, pharmacie, tourisme, aéronautique ...) possède de solides atouts : — Sa facilité d’utilisation et son interface graphique le rendent accessible aux non-initiés en fouille de données ; — Il peut lire de très nombreux formats de données ; — Il comporte de très nombreuses solutions pour pré-traiter, analyser et visualiser des données et des résultats d’analyses ; — La communauté des utilisateurs est très active et peut contribuer à ajouter de nouvelles fonctionnalités au logiciel. Ce premier TP a pour objectif de vous familiariser avec ce logiciel et notamment avec le concept principal qui sera manipulé tout au long des différents TPs : le workflow. Un workflow peut être vu comme une succession de briques (composants élémentaires). Chaque brique possède une fonctionnalité bien précise, e.g., lire un fichier, visualiser des données. En enchainant ces composants, il est alors possible de réaliser des analyses de données très sophistiquées de manière intuitive. Ce TP permettra d’aborder ces concepts. En particulier, nous aborderons les points suivants : — Comment lancer le logiciel, ouvrir et enregistrer un workflow ; 1 — — — — — 2 2.1 Comment Comment Comment Comment Comment celles-ci. ajouter des composants à un workflow et les configurer ; les relier ; exécuter un premier workflow ; appliquer quelques pré-traitements sur des données ; visualiser des données et calculer quelques statistiques sur Découverte du logiciel Présentation de l’interface L’interface principale par défaut du logiciel est présentée dans la Figure 1. Celle-ci est principalement composée de 6 parties : 1. La liste des workflows disponibles (accessibles via Internet ou stockés localement) est disponible dans le coin supérieur gauche de la fenêtre. C’est ici que vous retrouverez vos workflows une fois que vous les aurez enregistré ; 2. La liste des composants classés thématiquement est disponible dans le coin inférieur gauche ; 3. Une vue générale du workflow est présentée en bas ; 4. A sa droite, il est possible de voir la console, qui permet de voir les traces d’exécution d’un workflow. 5. Vu le grand nombre de composants disponibles dans Knime, les connaître tous n’est pas aisé. Aussi, la partie droite de la fenêtre propose une documentation sur le composant sélectionné. 6. Enfin, la fenêtre principale, au milieu de l’écran, permet de composer un workflow et d’interagir avec celui-ci (configurer les composants, les repositionner, les relier, ...) Instructions 1. La version du logiciel présente sur les machines de l’université date quelque peu. Il ne vous sera donc pas possible de télécharger certains composants qui seront utilisés dans ce TP et les suivants. Vous devez donc installer sur votre répertoire personnel le logiciel à l’adresse : https://www.knime.org/knime. Pour cela, il suffit de décompresser l’archive dans un répertoire local. 2 Documentation associée au composant sélectionné Répertoire de workspaces Fenêtre principale de composition de workspace Liste des composants disponibles Vue générale du workspace courant Console Figure 1 – Interface par défaut du logiciel Knime 2. Ouvrez le logiciel en double cliquant sur l’icône Knime dans le répertoire où le logiciel est installé. 3. Au démarrage, le logiciel vous demande de sélectionner votre Workspace. Il s’agit d’un répertoire dans lequel seront stockés les workflows que vous créerez dans ce module. Afin de ne pas voir votre travail effacé d’une séance à l’autre, créez un répertoire FouilleWorkspace dans votre répertoire personnel partagé. 4. Nous allons créer un workflow vierge qui contiendra le travail de ce TP. Pour ce faire, cliquez sur File puis sur New... puis New KNIME Workflow. Donnez un nom explicite à ce workflow et laissez le champ Destination... inchangé. Cliquez ensuite sur Finish pour basculer vers la fenêtre principale et disposer de votre workflow vierge. 2.2 2.2.1 Mon premier workflow Mise en place du premier composant Pour créer un workflow, il faut des composants. Nous allons donc débuter par créer et configurer un composant qui aura pour rôle de lire un fichier 3 texte. Les composants qui ont pour fonction la lecture ou l’écriture de fichier sont regroupés dans la catégorie IO. 1. Double-cliquez sur le composant FileReader (dans la sous-catégorie Read). Le composant apparaît au milieu de la fenêtre principale. D’un point de vue graphique, plusieurs éléments doivent être notés concernant un composant. Ceux-ci sont récapitulés dans la Figure 2. 2. Nous allons maintenant configurer le composant. Pour cela, doublecliquez (ou faites un clic droit puis Configure) sur le composant. Une boîte de dialogue s’ouvre alors. Elle contient 3 onglets : Settings, Flow Variables et Policy. Seul le premier onglet sera utilisé au cours des TPs. Vous pouvez y spécifier le fichier que vous voulez considérer ainsi que quelques options relatives à ce fichier. Nous allons utiliser un jeu de données exemple bien connu dans le monde de la fouille de données : le jeu de données adult. Ce jeu de données décrit quelques 30000 individus selon une dizaine de caractéristiques et est classiquement utilisé dans un contexte prédictif, i.e., l’individu a-t-il des revenus faibles ou élevés 1 . Vous pouvez télécharger ce jeu de données à l’adresse www.irit.fr/~Yoann.Pitarch/Docs/SID/Fouille/TP1/ adult.data. 3. Si vous avez bien configuré votre composant, le fichier devrait s’afficher dans la boîte de dialogue. Type de composant Sortie(s) du composant Entrée(s) du composant Avertissement indiquant un champ de configuration vide Etat du composant : - Rouge = pb de config - Orange = config OK mais composant non exécuté - Vert = confie OK et composant correctement exécuté Nom du composant (peut être modifié) Figure 2 – Un composants et ses informations associées 1. De plus amples informations sur ce jeu de données sont disponibles à l’adresse https: //archive.ics.uci.edu/ml/machine-learning-databases/adult/adult.names 4 2.2.2 Enchaînons deux composants Nous allons réaliser un premier workflow très simple dont l’objectif est de discrétiser un des attributs numériques du jeu de données utilisé précédemment, l’attribut Age. Pour cela, nous allons utiliser un des composants de la catégories Data Manipulation. Cette catégorie est extrêmement utile pour pré-traiter des données et nous l’utiliserons abondemment dans ce TP (et les autres qui suivront). Dans la mesure où la discrétisation est une méthode qui agit sur une colonne, cliquez sur Column. Ici aussi les outils de manipulation des colonnes sont catégorisés. La catégorie associée à la discrétisation est Binning. A l’intérieur de celle-ci, choisissez le composant Auto-Binner. Configurez le pour discréditer la colonne Age en 5 classes de même taille et dont le nom sera donné par les extrémités des intervalles. Reliez ces deux composants entre eux (la sortie du fichier vers ce nouveau composant) à l’aide de la souris. Voilà, vous avez créer votre premier workflow. Nous allons maintenant l’exécuter. Pour cela, vous devez repérer en haut de l’interface un bouton vert, avec deux triangles orientés vers la droite. Ce bouton permet de lancer tous les nœuds exécutables présents dans le workflow. Il est également possible de n’exécuter qu’un sous-ensemble de nœuds (ceux sélectionnés) à l’aide du bouton situé à gauche (un rond vert et un seul triangle) 2 . Une fois que ce workflow a été exécuté avec succès (l’indicateur d’état est en vert), il est possible de visualiser la sortie de ce composant. Pour cela, faites un clic droit sur ce composant. Vous vous trouvez devant un menu contextuel. Les deux derniers items de ce menu correspondent aux deux sorties du composant. La sortie nous intéressant est Binned Data. En cliquant dessus, vous pouvez visualiser le résultat de la discrétisation. Pour aller plus loin, nous nous proposons d’ajouter deux composants supplémentaires : — Filtrer les lignes pour ne conserver que les individus dont l’âge est compris entre 18 et 60 ans (inclus). Pour cela, vous devrez utiliser un composant manipulant les lignes. Ce composant est Row Filter dans Data Manipulation > Row > Filter. Ce traitement devra être effectué avant l’étape de discrétisation. — Excluez les lignes dont la colonne Education matche avec l’expression régulière .*th.*. Dans la mesure où on modifie l’ensemble des valeurs possibles pour cet attribut, il est nécessaire de connecter ce filtre à un 2. En réalité, l’exécution d’un ensemble de nœuds déclenche en cascade les nœuds qui précèdent ceux sélectionnés. Ceci est logique puisque un composant ne pourra fonctionner que si son/ses composant(s) le précédent a/ont été correctement configurés et exécutés. 5 autre composant : Domain Calculator. Cette étape est indispensable lorsque vous aurez à visualiser cet attribut (sans cela, les valeurs que vous venez de filtrer seraient tout de même apparues). Recherchez ce composant dans la liste des composants (en utilisant la fonction de recherche de composants) et connectez le au composant de filtre que vous venez de créer. — Supprimer la colonne Age une fois qu’elle aura été discrétisée à l’aide du composant Column Filter dans Data Manipulation > Column > Filter. Réalisez ces traitements et exécutez le workflow. 2.3 Premières visualisations Nous allons maintenant aborder un point important lorsque l’on manipule et analyse des données : la visualisation. En effet, si l’utilisation de techniques complexes de fouille de données s’avère souvent pertinente, il n’en reste pas moins qu’une première observation des données permet de se forger quelques intuitions sur les données à analyse et la connaissance que l’on pourrait en extraire. Au préalable, réarrangez le workflow pour que la discrétisation se trouve entre l’étape de filtre sur les âges et la suppression de la colonne Age. Dans la suite de ce TP, vous serez moins guidé que précédemment. L’objectif est de vous laissez libre du choix de visualisation qui vous semble le plus pertinent afin que vous vous familiarisez avec les composants de visualisation à votre disposition 3 . La catégorie de composants permettant la visualisation des données est Data Views. Ne considérez pour l’instant que les composants situés au premier niveau de cette catégorie. Connectez les composants de visualisations au jeu de données pré-traité précédemment pour : — Visualiser la répartition en âge des individus — Visualiser la répartition du salaire en fonction de l’âge ou du niveau d’étude Une fois le workflow exécuté, la visualisation peut être observée par un clic droit sur le composant que l’on souhaite visualiser et en sélectionnant l’item auquel est associé une loupe. 3. N’oubliez pas que vous avez une aide sur chaque composant disponible à droite de l’écran quand vous sélectionnez un document. 6 2.3.1 Ajoutons un peu de couleur pour enrichir la visualisation Vous avez pu le remarquer, les visualisations que vous avez produites ne sont pas très colorées. Au delà de l’aspect esthétique, l’ajout de la couleur permet d’ajouter une nouvelle dimension à un graphique. Illustrons ce point. A travers la manipulation suivante : 1. Reliez un composant Color Manager (dans Data Views > Property au jeu de données pré-traité. 2. Lors de la configuration de ce composant,vous pouvez choisir un attribut et les couleurs qui seront associées aux valeurs de cet attribut. Sélectionnez l’attribut Income et donnez affectez des couleurs différentes de votre choix aux deux valeurs de cette dimension. 3. Connectez maintenant un composant de visualisation d’un nuage de point (scatter plot) et visualisez l’âge par rapport au secteur professionnel. Les points s’affichent désormais d’une couleur différente en fonction de leur appartenance à la classe Income. Qu’en déduisezvous ? Plusieurs points sont à noter concernant la visualisation : — Un composant définit les couleurs pour un seul attribut. Ainsi si pour deux visualisation différentes vous avez besoin de colorer deux attributs différents, deux choix s’offrent à vous : reconfigurer le composant ou en créer un second. Pour éviter toute confusion dans les composants (cela est un conseil très général) il peut être utile de renommer chaque composant, i.e., double cliquer sur son nom (node xxx ) pour lui donner un nom plus explicite. — On peut ajouter une quatrième dimension à une visualisation en enchaînant un Shape Manager à un Color Manager sur deux attributs différents. 2.4 Premières statistiques Outre des composants de prétraitement et de visualisation, Knime offre également la possibilité de dresser des statistiques descriptives sur les données. Vous allez effectuez des statistiques basiques sur ce jeu de données. Pour cela, nous allons utiliser le composant Statistics. — Connectez ce composant au jeu de données pré-traité. — Exécutez ensuite le workflow — En ouvrant les 3 tables de données créées ainsi que la visualisation de ce composant, dressez la liste des fonctionnalités offertes par ce composant. 7 2.5 Découverte du jeu de données iris Nous allons maintenant faire connaissances avec un jeu de données qui nous utiliserons prochainement pour faire de l’apprentissage supervisé. A partir d’ici, vous serez moins guidés dans les étapes à réaliser. Vous aurez un objectif à atteindre et quelques composants potentiellement utiles. Cela sera à vous de créer le bon workflow pour atteindre l’objectif. 1. Téléchargez le jeu de données iris sur le site de l’UCI 2. A partir des des seuls composants Color Manager, Conditionnal Box PLot, Box PLot, Histogram (interactive), Linear Correlation et Statistics, déduisez des premières règles pour prédire l’espèce d’iris. 3 Analyse de logs Cette seconde partie du TP est en quelque sorte facultative. Nous sommes bien conscients de la longueur de ce TP. Néanmoins, il nous semble intéressant de vous montrer les possibilités d’analyse de logs de données offertes par Knime. 3.1 Introduction et objectifs Toute organisation possède désormais son site internet, vitrine des activités de l’organisation. Aussi, analyser le traffic d’un site internet revêt une importance stratégique cruciale car elle permet de répondre notamment à ces questions : — Qui consulte le site internet ? — Quelles pages sont les plus particulièrement visitées ? — La campagne de communication lancée par une entreprise a-t-elle un un impact sur le nombre de visites d’un site (et donc sur la visibilité d’une organisation) ? — Quelle est le nombre moyen de visites par semaine ? La réponse à ces questions passe par l’analyse détaillée de fichiers textes un peu obscurs : les fichiers de logs des serveurs web. Ces fichiers sont des fichiers textes structurés qui sont générés par le serveur web et stockent les visites sur un site web donné. Un exemple de log est présenté dans la Figure 3. L’objectif de ce TP va être d’utiliser Knime pour analyser un fichier de logs et établir quelques statistiques sur les visites du site internet. A ce stade, nous n’utiliserons pas d’algorithmes de fouille de données mais nous verrons 8 comment enchaîner des composants de manipulation de données pour réaliser les tâches souhaitées. Figure 3 – Extrait d’un fichier de logs 3.2 Instructions L’objectif est de vous donnez une séquence de traitements à effectuer et que vous choisissiez les composants et configurations adéquats. 3.2.1 Quelle est la nationalité des visiteurs du site internet ? Réalisez le workflow suivant (chaque point est un composant à relier au précédent) : 1. Utilisez le composant Weblog Reader pour charger le fichier de logs téléchargeable à l’adresse www.irit.fr/~Yoann.Pitarch/Docs/SID/ Fouille/TP1/sample.log. Dans le champ Date/time format, saisissez yyyy-MM-dd’T’HH:mm:ss et %h %t %m %r %H %s %b dans le champ Log format. 2. L’adresse IP permet souvent de géolocaliser le visiteur du site internet. Un composant permet de faire cette transcription. Il s’agit du composant Country Extractor. 3. Nous allons regrouper les lignes par Pays et utiliser les 2 agrégations suivantes (à spécifier dans l’onglet Manual Aggregation) : — Comptage sur le champ Remote host — Somme du champ Size of response 4. Ordonnez (du plus grand au plus petit) le résultat de l’agrégation selon le champ Count(Remote host) grâce au composant Sorter 5. Ne conservez que les 10 premières lignes grâce au composant Row Filter. 6. Affichez les histogrammes du nombre de hits et de la taille totale des réponses pour ces 10 pays grâce au composant Histogram (interactive) 9 3.2.2 Quel est le traffic quotidien sur le site ? Réalisez le workflow suivant (chaque point est un composant à relier au précédent) : 1. Utilisez le composant Weblog Reader pour charger le fichier de logs téléchargeable à l’adresse www.irit.fr/~Yoann.Pitarch/Docs/SID/ Fouille/TP1/sample.log. Dans le champ Date/time format, saisissez yyyy-MM-dd’T’HH:mm:ss et %h %t %m %r %H %s %b dans le champ Log format. 2. L’adresse IP permet souvent de géolocaliser le visiteur du site internet. Un composant permet de faire cette transcription. Il s’agit du composant Country Extractor. 3. Filtrez le résultat en excluant les lignes dont le pays est inconnu grâce au composant Row Filter. 4. Convertissez le champ Size of response de Byte vers MegaByte grâce au composant Byte Converter. 5. Nous avons besoin d’extraire le jour et le mois du timestamp. Le composant permettant de faire cela est Date Field Extractor. Réalisez l’extraction du mois et du jour du mois. 6. Réalisez le regroupement de ce résultat d’abord par jour du mois et par mois avec les fonctions d’agrégations suivantes : — Comptage sur le champ Remote host — Somme du champ Size of response 7. Affichez les histogrammes du nombre de hits et de la taille totale des réponses par jour du mois grâce au composant Histogram (interactive) 3.2.3 Quel est le traffic hebdomadaire moyen ? Copiez et adaptez le workflow précédent pour avoir le traffic moyen (nombre de hits et taille totale des réponses) par jour de la semaine. 10