Projet

Général

Profil

Actions

Data preparation with command line

Pré-requis

Chaîne de traitement

Nous allons travailler sur les données zoo.csv, dans le dossier data

1,1,0,0,1,0,0,1,1,1,1,0,0,4,0,0,1
1,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1
4,0,0,1,0,0,1,1,1,1,0,0,1,0,1,0,0
1,1,0,0,1,0,0,1,1,1,1,0,0,4,0,0,1
1,1,0,0,1,0,0,1,1,1,1,0,0,4,1,0,1
1,1,0,0,1,0,0,0,1,1,1,0,0,4,1,0,1
1,1,0,0,1,0,0,0,1,1,1,0,0,4,1,1,1
...

Il y a aussi un fichier décrivant les colonnes : zoo.col

0 Class
0 hair
0 feathers
0 eggs
0 milk
0 airborne
0 aquatic
0 predator
0 toothed
0 backbone
0 breathes
0 venomous
0 fins
0 legs
0 tail
0 domestic
0 catsize

La première étape consiste à répertorier les différentes valeurs pour chaque attribut :

$ dictionary zoo.csv zoo.col
#Class
1
2
3
4
5
6
7
#hair
0
1
#feathers
0
1
#eggs
0
1
...

Cette première étape pourrait déjà faire l'objet d'un démonstrateur swapper.

On va enregistrer ce résultat :

dictionary zoo.csv zoo.col > zoo.dico

Il est maintenant possible de remplacer chaque valeur par un identifiant entier, de façon à obtenir des données au format transactionnel :

$ segmentation zoo.csv zoo.dico zoo.bin zoo.trad
$ cat zoo.bin
1 9 10 12 15 16 18 21 23 25 27 28 30 34 38 40 43
1 9 10 12 15 16 18 20 23 25 27 28 30 34 39 40 43
4 8 10 13 14 16 19 21 23 25 26 28 31 32 39 40 42
1 9 10 12 15 16 18 21 23 25 27 28 30 34 38 40 43
1 9 10 12 15 16 18 21 23 25 27 28 30 34 39 40 43
1 9 10 12 15 16 18 20 23 25 27 28 30 34 39 40 43
1 9 10 12 15 16 18 20 23 25 27 28 30 34 39 41 43
...

et le fichier de traduction :
$ cat zoo.trad
#0
1 Class<=1
2 Class<=2
3 Class<=3
4 Class<=4
5 Class<=5
6 Class<=6
7 Class<=7
#1
8 hair<=0
9 hair<=1
#2
10 feathers<=0
11 feathers<=1
#3
12 eggs<=0
13 eggs<=1
#4
14 milk<=0
15 milk<=1
...

Un premier scénario de fouille avec paramètres

On extrait les règles sans exception (-d 0), de support minimal 10% (-s 0.1) :

$ mvminer -s 0.1 -d 0 -i zoo.bin | more

Même chose avec traduction des résultats :

$ mvminer -s 0.1 -d 0 -i zoo.bin | translation zoo.trad | more

Mis à jour par François Rioult il y a plus de 3 ans · 3 révisions