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