Le livre de la jungle edition hachette jeunesse

TP Datamining (DM)
IUT Génie Biologique : Filière BioInformatique
3ième année
2008-2009
Weka (Waikato Environment for Knowledge Analysis) est une application regroupant une collection
d'algorithmes utilisés pour les problèmes de fouille de données ou DM.
1. Présentation générale – prise en main de l’environnement de DM
WEKA est une application codée en JAVA. Elle fonctionne sur n'importe quelle plate-forme (Unix, Linux,
Windows)
et
possède
une
interface
graphique
simplifiant
son
utilisation.
Son code source est disponible gratuitement, et permet à n'importe quel utilisateur d'ajouter des fonctions.
L’application est téléchargeable sur http://www.cs.waikato.ac.nz/~ml/weka/index.html.
Son installation est simple et nécessite JRE. Les données sont soit stockées dans un ficher soit dans une base de
données. Les fichiers doivent être convertis au format "ARFF". Il est possible de travailler avec deux fichiers.
L'un contenant les instances du « training set » (jeu d’apprentissage), l'autre du « test set » (jeu de test).
1.1. Les algorithmes disponibles
Les algorithmes de classification inclus sont :
•
decision tree inducers
•
rule learners
•
naive Bayes
•
decision tables
•
locally weighted regression
•
support vector machines
•
instance-based learners
•
logistic regression
•
voted perceptrons
•
multi-layer perceptron
Les algorithmes pour la prédiction numérique :
•
linear regression
•
model tree generators
•
locally weighted regression
•
instance-based learners
•
decision tables
•
multi-layer perceptron
Les métas schémas inclus sont :
•
bagging
•
stacking
•
boosting
•
regression via classification
•
classification via regression
•
cost sensitive classification
Les méthodes de « clustering » :
•
•
•
Cobweb
EM algorithme
Kmeans naïf
Les algorithmes de recherche de règles associatives :
•
A-priori.
Toutes ces méthodes sont paramétrables par l’utilisateur.
1.2. Le format des fichiers d’entrée « .ARFF »
Le format « ARFF » correspond à la description suivante :
• en début de fichier, le nom de la relation précédée du mot "@relation"
• puis la liste des attributs de la relation : @attribute <nom> <type>
• pour les données, on affiche "@data" suivit de tous les enregistrements lignes par lignes. Les champs
de ces enregistrements sont séparés par une virgule.
Pour convertir au format ARFF, il faut exporter dans un fichier texte les données d’une base existante en les
séparant par une virgule. On complète ensuite l'entête du fichier de la manière suivante :
Exemple du fichier IRIS :
@RELATION iris
@ATTRIBUTE sepallength
REAL
@ATTRIBUTE sepalwidth
REAL
@ATTRIBUTE petallength
REAL
@ATTRIBUTE petalwidth
REAL
@ATTRIBUTE class
{Iris-setosa,Iris-versicolor,Iris-virginica}
@DATA
5.1,3.5,1.4,0.2,Iris-setosa
4.9,3.0,1.4,0.2,Iris-setosa
4.7,3.2,1.3,0.2,Iris-setosa
TP partie 1 : prise en main
À faire : ouvrir le fichier IRIS.arff en double cliquant directement dessus. Observer la page de
preprocess de WEKA.
Préciser le nombre d’instances, d’attributs, et les informations statistiques sur chaque attribut.
En déduire à quoi sert cette base de données.
Observer le comportement de la fenêtre log. Qu’indique-t-elle ?
1.3. Utilisation simplifiée
Il n’y a pas d’aide apparente même si de temps en temps des bulles d’aides se déclenchent lorsque la souris passe
sur les boutons et autres objets composant la fenêtre.
Quelques conseils sont donnés dans http://www.cs.waikato.ac.nz/~ml/weka/tips_and_tricks.html
De nombreuses fonctionnalités sont accessibles par clic droit sur les panels !!! (Sauvegarde des résultats dans
un fichier, visualisation graphique …)
2. Les méthodes de DataMining sous Weka 3
2.1. Méthodes de clustering
Il existe plusieurs algorithmes de clustering disponible sous Weka 3, l’interface graphique permet d’un clic sur la
fenêtre « visualize » d’afficher graphiquement les résultats (en 2D).
2.1.1. EM : Expectation Maximization (non abordé en cours)
Nom du module : weka.clusterers.EM
Objectif : Clustering en utilisant la maximisation de l’espérance
Options :
Seed : graine de nombre aléatoire
MinStdDev : écart type permis minimum
maxIterations : nombre maximum d’itérations
numClusters : nombre donné de clusters. -1 pour laisser l’algorithme choisir le nombre de clusters
automatiquement (par validation croisée (cross validation)).
2.1.2. Kmeans (vu en cours)
Nom du module : weka.clusterers.SimpleKMeans
Objectif : utilisation de l’algorithme kmeans simple
Options
Seed : graine de nombre aléatoire
numClusters : nombre donné de clusters
2.1.3. Cobweb (non abordé en cours)
Non abordé dans le cadre de ce TP.
TP partie 2 : première analyse
À faire : toujours sur la base IRIS. Nous allons évaluer le résultat d’une méthode de clustering en utilisant le
pourcentage de mal classé.
Utiliser l’algorithme weka.clusterers.SimpleKMeans et se placer sur le mode « classes to cluster evaluation ».
Choisir une première valeur de k (numclusters) et observer le résultat obtenu.
Recommencer avec une autre valeur de k, et tenter ainsi par itérations successives de trouver le meilleur
moyen de « clusteriser » les données de la base IRIS. Le nombre d’itérations est libre. A vous de juger si le
résultat vous semble correct.
Apporter une conclusion sur les clusters obtenus. Discuter par exemple sur le nombre d’itérations et le
pourcentage d’instances mal classées (Les illustrations sont très utiles). Essayez de repérer pour les instances
mal classées quels sont les attributs responsables de ce mauvais résultat. Décrire en détail la méthode utilisée.
Utiliser l’algorithme EM sur le même jeu de données et commenter le résultat obtenu.
Apporter une conclusion sur la méthodologie que vous utiliseriez (en comparant les deux algorithmes) pour
« clusteriser » les données de la base IRIS.
2.2. Règles d’association : Apriori
Nom du module : weka.associations.Apriori
Objectif : trouve des règles d'association.
Options
metricType : Le type de métrique pour ranger des règles :
- La confiance est la proportion des exemples couverts par les antécédents qui sont également
couverts par les conséquents.
- Lift représente la confiance divisée par la proportion de tous les exemples qui sont couverts par
les conséquents. C'est une mesure d'importance de l'association qui est indépendante du
support.
- La puissance (Leverage) est la proportion d'exemples supplémentaires à couvrir par les
antécédents et les conséquents au-dessus de ceux escomptés si les antécédents et les
conséquents étaient indépendants de l'un de l'autre. Le nombre d'exemples que cela représente
est placé entre parenthèses après la puissance.
- La conviction est une autre mesure du départ de l'indépendance
lowerBoundMinSupport : limite inférieure pour le support minimum.
minMetric : points métriques minimum, considère seulement les règles avec des scores plus hauts que cette
valeur.
UpperBoundMinSupport : limite supérieure pour le support minimum. Commence à diminuer itérativement le
support minimum à partir de cette valeur.
RemoveAllMissingCols : retire les colonnes où toutes les valeurs sont manquantes.
significanceLevel : niveau de signification. Test de signification (métrique sur la confiance seulement).
Delta : diminue itérativement le support par ce facteur : réduit le support jusqu'à ce que le support minimum soit
atteint ou que le nombre exigé de règles soit produit.
NumRules : nombre de règles à trouver.
2.3. Méthodes de classification
Il existe de nombreuses méthodes, nous ne verrons que celles que nous allons utiliser.
2.3.1. ID3
ID3 n’accepte pas les valeurs manquantes.
Nom du module : weka.classifiers.id3
Objectif : classifier par arbre de décision
Il n’a pas de paramètres.
2.3.2. ZeroR et OneR
Ces deux algorithmes sont utilisés pour classifier des données. Nous ne rentrerons pas dans le détail du
fonctionnement mais il sera intéressant de les utiliser dans ce qui suit à titre de comparaison avec ID3.
TP partie 3 : analyse complète autonome
À faire : nous allons travailler sur une nouvelle base de données : BREAST-CANCER.ARFF. Pour cette
dernière partie de TP vous allez répondre à la question suivante : quels sont les facteurs qui pourraient être mis
en cause dans un processus de rechute ou de non rechute de cancer du sein.
Décrire la base de donnée de façon quantitative puis qualitative (d’abord chaque attribut, puis en déduire
de quelle manière peut être exploitée la base). Y a-t-il un problème dans cette base de donnée ? Si oui,
comment le résoudre (proposer votre solution) ?
Utiliser les méthodes de clustering pour obtenir une description de la distribution de ces données. Décrire le
choix des méthodes et leur implémentation (essayer de faire varier le paramètre d’évaluation de la qualité du
clustering pour EM par exemple. Puis essayer d’affiner le résultat avec k means.). Quel paramètre semble
présenter de l’importance?
En utilisant les algorithmes de classification (oneR, ZeroR, et ID3) et de règles d’association (Apriori),
tenter de trouver un lien entre les différents attributs et le fait de risquer de faire une rechute où de ne pas faire de
rechute. Pour les algorithmes oneR, ZeroR et ID3, il faut utiliser les paramètres par défaut et faire varier la
nature des attributs de classification. Pour l’algorithme Apriori, tenter de faire varier la confiance (confidence)
ainsi que le nombre de règles obtenues.
Apporter une conclusion générale sur les facteurs suspectés de provoquer un risque ou pas de risque de
rechute de cancer du sein ainsi que sur les méthodes utilisées (complémentarité, risques de mauvaises réponses,
intérêts, ordre préférentiel d’utilisation dans le processus de découverte d’information).
Conseils de rédaction :
Ce TP sera noté sur deux principaux critères. La façon dont vous présenterez vos résultats (clarté, etc.) et la
façon dont vous expliquerez vos raisonnements et conclusions. Ne pas hésiter à utiliser les représentations
graphiques pour vos explications en « collant les imprime_écran » issus de WEKA.
Notez bien que vous êtes tous censés savoir cliquer sur les boutons et obtenir les résultats bruts. La différence de
notation s’effectuera donc sur la pertinence de votre analyse personnelle.