bedjrou chakib dahmani khalid - ceremadetouati/sodas/exemples/... · 2013. 4. 16. · edwin diday...
TRANSCRIPT
-
Edwin DIDAY année 2005-2006
Université Paris IX - Dauphine
Master Informatique Décisionnelle
DATA MINING
BEDJROU Chakib
DAHMANI Khalid
DEVOIR SOUS SODAS
ANALYSE DE DONNEES SYMBOLIQUES
-
1
SOMMAIRE
INTRODUCTION ........................................................................................................ 2
I. DESCRIPTION DE LA BASE DE DONNEES ...................................................... 3
a. SCHEMA RELATIONEL SOUS ACCESS ........................................................... 3
b. EXPLICATION DES TABLES.............................................................................. 4
II. REQUETE : INDIVIDUS – CONCEPTS - DESCRIPTION................................ 6
III. REQUETE : CONCEPTS – COLONNES DE VALEURS UNIQUES ................ 7
IV. Symbolic Objet Editor (SOE) ........................................................................... 9
a. L’étoile zoom à deux dimensions ...................................................................... 10
b. Les histogramme horizontaux ou verticaux ....................................................... 12
V. La méthode STAT ......................................................................................... 14
a. Listing ............................................................................................................... 14
b. Capacités et min/max/mean pour des variables multimodales probabilistes...... 15
VI. Fréquences relatives pour des variables intervalles ....................................... 16
VII. La méthode DIV : Divisive Clustering on Symbolic Objects ........................... 17
CONCLUSION ......................................................................................................... 21
-
2
INTRODUCTION
Nous avons choisi d’étudier une base de données d’accidentologie provenant du site du
Laboratoire de Bases de Données de L'Ecole Polytechnique Fédérale de Lausanne.
Pour ce faire, nous prévoyons de lui soumettre deux types de requêtes :
Une du type : Individus – Concepts – Description des individus
Une du type : Concepts – Colonnes de valeurs uniques
Puis, nous appliquerons différentes méthodes contenues dans ce logiciel.
Dans notre devoir, les individus sont les accidents (leurs identifiants) et le concept est leur
cause.
-
3
I. DESCRIPTION DE LA BASE DE DONNEES
a. SCHEMA RELATIONEL SOUS ACCESS
-
4
b. EXPLICATION DES TABLES
Table MACCIDENT
accident_id Identifiant de l'accident
lieu_id N° INSEE Commune
date_id Identifiant des informations liées à la date
cause_id Identifiant des informations liées à la cause de l’accident
lum_id Identifiant des informations liées à la luminosité
intemp_id Identifiant des informations liées au temps
etat_surface_id Identifiant des informations liées à l’état de la surface
impliq_id Identifiant des informations liées à ceux impliqués dans l’accident
Nombre de blessés graves Nombre de blessés graves
Nombre de blessés légers Nombre de blessés légers
Nombre d'indemnes Nombre d'indemnes
Gravité 0=sans gravité; 1=léger; 2=grave; 3=mortel
Table MCause
code code
libellé_cause libellé de la cause
Table MLuminosité
code 1, 2, 3, 4, 5
libellé
1=Jour
2=Demi-jour
3=Nuit éclairée
4=Nuit éclairée insuffisant
5=Nuit sans éclairage
type_luminosité 1, 2
libelle_luminosité
1=Jour
2=Nuit
Table MIntempérie
code 1, 2, 3, 4, 5, 6, 7
libellé
1=Beau temps
2=Pluie forte
3=Pluie légère
4=Neige
5=Grêle
6=Brouillard
7=Vent fort tempête
-
5
Table Etat Surface
Code_etat_surface 1, 2, 3, 4, 5, 6, 7
Libellé_etat_surface
1=Humide
2=Mouillée
3=Enneigée
4=Verglacée
5=Gras boueux
6=Gravillons
7=Sec normal
type_code_état_surface 1, 2, 3
libellé_ type_code_état_surface
1=Normal
2=Dangereux
3=Très Dangereux
Table MImpliqué
code_impliqué 1, 2, 3, 4, 5, 6, 7, 8, 9
libellé_impliqué
1=Piéton -10 Ans
2=Piéton +10 Ans
3=Bicyclette
4=Cyclomoteur
5=Moto
6=Voiture légère
7=Poids Lourd
8=Bus
9=Tram, Engin…
type_code_impliqué 1, 2, 3
Libellé_code_impliqué
1=Humain
2=Deux roues
3=Véhicule
-
6
II. REQUETE : INDIVIDUS – CONCEPTS - DESCRIPTION
Cette requête est de la forme : select * from requête1 avec requête1 une requête qui
renvoie une table du type : individus / concepts / description des individus.
Soit le résultat de la requête1 :
1ère colonne = individus ;
2ième colonne = concepts ;
3ième colonne et suivantes = descriptions des individus.
Dans la présente étude, la requête1 correspond à la requête
INDIV_CONCEPT_VARIABLE présentée ci-dessous :
SELECT MAccident.accident_id, MCause.libelle AS MCause_libelle, MDate.jour, MDate.mois, MDate.annee,
MLieu.commune, MEtatSurface.libelle_etat_surface, MImplique.libelle AS MImplique_libelle,
MIntemperie.libelle AS MIntemperie_libelle, MLuminosite.libelle AS MLuminosite_libelle
FROM MLuminosite INNER JOIN (MLieu INNER JOIN (MIntemperie INNER JOIN (MImplique INNER
JOIN (MEtatSurface INNER JOIN (MDate INNER JOIN (MCause INNER JOIN MAccident ON
MCause.Cause = MAccident.cause_id) ON MDate.date_id = MAccident.date_id) ON
MEtatSurface.code_etat_surface = MAccident.etat_surface_id) ON MImplique.code = MAccident.impliq_id)
ON MIntemperie.code = MAccident.intemp_id) ON MLieu.lieu_id = MAccident.lieu_id) ON MLuminosite.code
= MAccident.lum_id;
La requête doit retourner une ligne pour chaque individu, chaque ligne ayant une
structure précise: identifiant de l’individu, groupe auquel appartient l’individu et ensuite les
différents attributs décrivant les individus.
Le nombre de ces attributs est variable mais un minimum d’un attribut est requis.
Une fois la requête SQL tapée et validée, elle s’exécute dans la base de données, les
individus sont alors extraits de la base de données, ils sont stockés en mémoire et un tableau
de concepts est généré.
-
7
A l’issue de l’extraction des individus, il est possible de visualiser les résultats, à
savoir les tableaux des individus et des concepts en sélectionnant le menu View et en
choisissant Individuals ou bien Assertions.
A ce stade, le résultat obtenu peut être sauvegardé en choisissant File\Save as, le
fichier est alors enregistré avec l’extension .gaj.
Nous obtenons cinq variables quantitatives et quatre variables qualitatives
III. REQUETE : CONCEPTS – COLONNES DE VALEURS UNIQUES
La requête SQL est la suivante :
SELECT MCause.libelle, Sum(MAccident.nb_blesses_graves) AS totalBlesses,
Sum(MAccident.nb_blesses_legers) AS totalLegers, Sum(MAccident.nb_indemnes) AS totalIndemnes,
(totalBlesses/(totalBlesses+totalLegers+totalIndemnes))*100 AS pourcBlessesGrave
FROM MCause INNER JOIN MAccident ON MCause.Cause = MAccident.cause_id
GROUP BY MCause.libelle;
-
8
Le mode opératoire consiste à partir de l’écran ci-dessus à ouvrir le menu
Modify\Add single valued variable, et à écrire une requête SQL destinée à extraire de la
base relationnelle les variables décrivant le concept retenu.
Il s’agit, en fait, de l’ajout de colonnes de valeurs uniques, la requête qui est appliquée
ici amène uniquement des attributs numériques.
Le résultat obtenu à l’écran est le suivant :
-
9
IV. Symbolic Objet Editor (SOE)
Cette méthode permet tout d’abord l’édition d’une table descriptive des concepts, où
les quantitatives sont transformées en intervalles et les variables quantitatives en fréquences.
La méthode SOE permet, donc, à un utilisateur de visionner facilement dans ce tableau
tous les objets symboliques présents dans un fichier SODAS ainsi que d’opérer quelques
changements sur ces données.
Ces changements sont par exemple la modification des libellés des objets, des
modalités, des variables, … .
-
10
a. L’étoile zoom à deux dimensions
Une première représentation de la méthode, en étoile zoom à deux dimensions,
appliquée aux accidents provoqués par un Mauvais positionnement (changement de file) ou à
un état d’ivresse permet de faire ressortir les différentes données associées à ces deux
concepts.
On constate que les accidents provoqués par un mauvais positionnement concernent,
en règle générale, des conducteurs de voitures et se produisent, en plus grand nombre, par
temps de pluie forte en journée.
-
11
Comme précédemment, on constate que les accidents provoqués par un état d’ivresse
concernent, en règle générale, des conducteurs de voitures et se produisent, en plus grand
nombre, par temps de pluie forte mais cette fois-ci la nuit.
-
12
Pour les accidents provoqués par un éblouissement par les phares, on constate que les
victimes sont, en règle générale, des piétons âgés de plus de 10 ans et se produisent, en plus
grand nombre, par temps de pluie forte et en journée.
b. Les histogramme horizontaux ou verticaux
Les représentations en étoiles zoom sont parfois un peu trop condensées, il est toujours
possible de visualiser un deuxième type de représentation, pour un axe donné, sous forme
d’histogrammes verticaux ou horizontaux.
Prenons par exemple, pour les accidents liés à un état d’ivresse, le type d’usagers
impliqués :
-
13
Ceci nous permet de voir avec précision le pourcentage de types d’usagers impliqués
dans des accidents ayant pour cause un état d’ivresse.
-
14
V. La méthode STAT
La méthode STAT permet d’appliquer des méthodes, habituellement utilisées pour des
données conventionnelles, à des données symboliques représentées par leurs descriptions.
Ces méthodes dépendent du type des variables présentes dans la base SODAS.
1 – les fréquences relatives pour les variables multimodales ;
2 – les fréquences relatives pour les variables intervalles ;
3 – les capacités et min/max/mean pour les variables multimodales probabilistes ;
4 – biplot pour les variables intervalles.
Le format de sortie est, selon le choix de l’utilisateur, un listing ou bien un graphique.
a. Listing ---------------------------------------------------------------------------
SODAS - STAT CAPACITIES Mar 31 2006 15:49
File: ACCIDENT.SDS
Title: accident
---------------------------------------------------------------------------
capa mini maxi mean
libelle_etat_surface
AG01 Sec Normal 1.0000 0.5455 1.0000 0.7892
AG02 Humide 0.9984 0.0000 0.2253 0.1218
AG03 Verglacee 0.2752 0.0000 0.0909 0.0064
AG04 Mouillee 0.9819 0.0000 0.2000 0.0777
AG05 Enneigee 0.1297 0.0000 0.0459 0.0028
AG06 Gras boueux 0.0693 0.0000 0.0345 0.0015
AG07 Gravillons 0.0303 0.0000 0.0087 0.0006
libelle
AH01 Voiture legere 1.0000 0.0000 0.9250 0.5360
AH02 Pieton plus 10 ans 0.9992 0.0000 0.7808 0.1023
AH03 Pieton moins 10 ans 0.7081 0.0000 0.2741 0.0232
AH04 Bus 0.9432 0.0000 0.9091 0.0278
AH05 Bicyclette 0.9849 0.0000 0.6624 0.0709
AH06 Cyclomoteur 0.9992 0.0000 0.4290 0.1269
AH07 Moto 0.8877 0.0000 0.2279 0.0419
AH08 Poids lourd 0.8691 0.0000 0.2000 0.0394
AH09 Tram, Engin 0.8696 0.0000 0.5600 0.0315
libelle_1
AI01 Pluie forte 1.0000 0.6000 0.9683 0.8438
AI02 Grele 0.2200 0.0000 0.0550 0.0050
AI03 Neige 0.9963 0.0000 0.2000 0.1068
AI04 Pluie legere 0.6998 0.0000 0.1034 0.0240
AI05 Inconnu 0.2817 0.0000 0.0400 0.0067
AI06 Vent fort tempete 0.4958 0.0000 0.1111 0.0136
AI07 Brouillard 0.0060 0.0000 0.0019 0.0001
libelle_luminosite
AJ01 Nuit 1.0000 0.0625 0.9000 0.2408
AJ02 Jour 1.0000 0.1000 0.9375 0.7592
-
15
Le listing nous permet d’avoir les valeurs permettant la construction des graphiques.
b. Capacités et min/max/mean pour des variables multimodales probabilistes
Cette méthode construit d’une part un histogramme des capacités des différentes
modalités prises par une variable donnée et d’autre part un histogramme présentant la
probabilité minimum, la probabilité maximale et la probabilité moyenne prise par chaque
modalité.
Nous nous intéressons aux types d’usagers impliqués les plus fréquemment impliqués
dans les accidents.
D’après cette méthode, nous constatons que les conducteurs de voitures et les
cyclomoteurs sont en moyenne les plus impliqués dans les accidents. Mais il y a une large
dominance par les conducteurs de voitures.
-
16
VI. Fréquences relatives pour des variables intervalles
Maintenant nous considérons la variable NB_BLESSES_GRAVES et un nombre de
10 classes. Ces deux derniers sont donnés en paramètre.
La méthode construit alors un histogramme pour la variable NB_BLESSES_GRAVES
sur un intervalle [0, 6] (où 0 correspond à la borne inférieure de NB_BLESSES_GRAVES et
6 à la borne supérieure de NB_BLESSES_GRAVES) de la manière suivante: l’intervalle [0,6]
est découpé en 10 classes de longueurs identiques.
Nous remarquons que la classe qui surpasse toute les autres est la classe [0,1]. Cela
signifie que le nombre le plus important de blessés grave se situe entre 0 et 1. De plus,
beaucoup d’accidents engendrent entre 1 et 4 blessés graves. Mais il est rare qu’il y en ait plus
de 5.
-
17
VII. La méthode DIV : Divisive Clustering on Symbolic Objects
DIV (Divisive Clustering) est une méthode de classification hiérarchique qui
commence avec tous les objets d’une classe et procède par divisions successives de chaque
classe. A chaque étape, une classe est divisée en deux classes selon une question binaire.
Cette question binaire induit le meilleur partage en deux classes selon une extension
du critère de l’inertie. L’algorithme se termine après k-1 divisions, où k représente le nombre
de classes données comme inputs par l’utilisateur.
La variable utilisée ici est le nombre de blessés graves et le nombre de classes choisi
est 5.
Le résultat obtenu est le suivant :
-------------------------------------------------------
BASE=C:\SODAS\Tmp\EGNS1Q03.CMD nind=49 nvar=10 nvarsel=1
METHOD=DIVISIVE CLUSTERING
-------------------------------------------------------
VARIANCE OF THE SELECTED VARIABLES:
------------------------------------
nb_blesses_graves : 1.496876
-------------------------------------------------------
PARTITION IN 2 CLUSTERS:
-------------------------:
Cluster 1 (n=34):
"Roule en marche arrière" "Traverse sans précaution" "Incident mécanique"
"Joue ou travaille sur la chaussée" "Quitte le stationnement" "Marche sur
la chaussée" "Non respect du piéton en section" "Indéterminée" "Demi-tour"
"Heurte véhicule en stationnement interdit"
"Entre sur la chaussée" "Eblouissement par les phares" "Non respect du
piéton en carrefour" "Eclairage insuffisant du véhicule" "Ouverture d'une
portière" "Dépassement a droite" "Non respect priorité a droite" "Ecart sur
le côté" "Va stationner a gauche" "Malaise"
"Circule sur le trottoir" "Heurte un obstacle inerte" "Manoeuvre sur
parking" "Queue de poisson" "Piéton descendant d'un t.c." "Dépassement en
3eme position" "Entre ou sort de véhicule en stationnement" "Heurte un
obstacle mobile" "Marche arrière pour stationner" "Dépassement en virage"
"Tourne à gauche interdit" "Piéton montant dans un t.c." "Dépassement en
carrefour" "Tourne à droite interdit"
Cluster 2 (n=15):
"Ivresse" "Défaut de maîtrise" "Traverse hors passage" "Roule à gauche"
"Perte de contrôle" "Sens interdit" "Mauvais positionnement (chgt de file)"
"Heurte un véhicule en stationnement" "non respect feux tricolores" "non
respect des signaux"
"non respect du stop" "Dépassement dangereux" "Non respect priorité de
face" "Non respect d'une balise" "Non respect priorité a droite (avec feux
clignotant)"
Explicated inertia: 70.778149
-
18
PARTITION IN 3 CLUSTERS:
-------------------------:
Cluster 1 (n=34):
"Roule en marche arrière" "Traverse sans précaution" "Incident mécanique"
"Joue ou travaille sur la chaussée" "Quitte le stationnement" "Marche sur
la chaussée" "Non respect du piéton en section" "Indéterminée" "Demi-tour"
"Heurte véhicule en stationnement interdit"
"Entre sur la chaussée" "Eblouissement par les phares" "Non respect du
piéton en carrefour" "Eclairage insuffisant du véhicule" "Ouverture d'une
portière" "Dépassement a droite" "Non respect priorité a droite" "Ecart sur
le côté" "Va stationner a gauche" "Malaise"
"Circule sur le trottoir" "Heurte un obstacle inerte" "Manoeuvre sur
parking" "Queue de poisson" "Piéton descendant d'un t.c." "Dépassement en
3eme position" "Entre ou sort de véhicule en stationnement" "Heurte un
obstacle mobile" "Marche arrière pour stationner" "Dépassement en virage"
"Tourne à gauche interdit" "Piéton montant dans un t.c." "Dépassement en
carrefour" "Tourne à droite interdit"
Cluster 2 (n=12):
"Ivresse" "Défaut de maîtrise" "Traverse hors passage" "Roule à gauche"
"Sens interdit" "Mauvais positionnement (chgt de file)" "Heurte un véhicule
en stationnement" "non respect des signaux" "non respect du stop" "Non
respect priorité de face"
"Non respect d'une balise" "Non respect priorité a droite (avec feux
clignotant)"
Cluster 3 (n=3) :
"Perte de contrôle" "non respect feux tricolores" "Dépassement dangereux"
Explicated inertia : 83.866630
PARTITION IN 4 CLUSTERS:
-------------------------:
Cluster 1 (n=17):
"Roule en marche arrière" "Joue ou travaille sur la chaussée" "Marche sur
la chaussée" "Indéterminée" "Heurte véhicule en stationnement interdit"
"Eblouissement par les phares" "Dépassement a droite" "Malaise" "Circule
sur le trottoir" "Heurte un obstacle inerte"
"Manoeuvre sur parking" "Queue de poisson" "Piéton descendant d'un t.c."
"Dépassement en 3eme position" "Entre ou sort de véhicule en stationnement"
"Marche arrière pour stationner" "Piéton montant dans un t.c."
Cluster 2 (n=12):
"Ivresse" "Défaut de maîtrise" "Traverse hors passage" "Roule à gauche"
"Sens interdit" "Mauvais positionnement (chgt de file)" "Heurte un véhicule
en stationnement" "non respect des signaux" "non respect du stop" "Non
respect priorité de face"
"Non respect d'une balise" "Non respect priorité a droite (avec feux
clignotant)"
Cluster 3 (n=3):
"Perte de contrôle" "non respect feux tricolores" "Dépassement dangereux"
Cluster 4 (n=17):
"Traverse sans précaution" "Incident mécanique" "Quitte le stationnement"
"Non respect du piéton en section" "Demi-tour" "Entre sur la chaussée" "Non
respect du piéton en carrefour" "Eclairage insuffisant du véhicule"
"Ouverture d'une portière" "Non respect priorité a droite"
"Ecart sur le côté" "Va stationner a gauche" "Heurte un obstacle mobile"
"Dépassement en virage" "Tourne à gauche interdit" "Dépassement en
carrefour" "Tourne à droite interdit"
-
19
Explicated inertia : 95.455389
PARTITION IN 5 CLUSTERS:
-------------------------:
Cluster 1 (n=17):
"Roule en marche arrière" "Joue ou travaille sur la chaussée" "Marche sur
la chaussée" "Indéterminée" "Heurte véhicule en stationnement interdit"
"Eblouissement par les phares" "Dépassement a droite" "Malaise" "Circule
sur le trottoir" "Heurte un obstacle inerte"
"Manoeuvre sur parking" "Queue de poisson" "Piéton descendant d'un t.c."
"Dépassement en 3eme position" "Entre ou sort de véhicule en stationnement"
"Marche arrière pour stationner" "Piéton montant dans un t.c."
Cluster 2 (n=8):
"Traverse hors passage" "Roule à gauche" "Mauvais positionnement (chgt de
file)" "Heurte un véhicule en stationnement" "non respect des signaux" "Non
respect priorité de face" "Non respect d'une balise" "Non respect priorité
a droite (avec feux clignotant)"
Cluster 3 (n=3):
"Perte de contrôle" "non respect feux tricolores" "Dépassement dangereux"
Cluster 4 (n=17):
"Traverse sans précaution" "Incident mécanique" "Quitte le stationnement"
"Non respect du piéton en section" "Demi-tour" "Entre sur la chaussée" "Non
respect du piéton en carrefour" "Eclairage insuffisant du véhicule"
"Ouverture d'une portière" "Non respect priorité a droite"
"Ecart sur le côté" "Va stationner a gauche" "Heurte un obstacle mobile"
"Dépassement en virage" "Tourne à gauche interdit" "Dépassement en
carrefour" "Tourne à droite interdit"
Cluster 5 (n=4):
"Ivresse" "Défaut de maîtrise" "Sens interdit" "non respect du stop"
Explicated inertia: 99.091078
THE CLUSTERING TREE:
---------------------
- the number noted at each node indicates
the order of the divisions
- Ng yes and Nd no
+---- Classe 1 (Ng=17)
!
!----3- [nb_blesses_graves
-
20
Les accidents sont divisés finalement en 5 classes selon le nombre de blessés graves.
Au début, ils ne forment qu’un seul échantillon. Puis ils sont divisés en 2 échantillons selon
que l’effectif de blessés graves soit supérieur à 1,25 ou non.
L’échantillon, dont le nombre de blessés graves est inférieur à cette valeur, se divise en
2 selon que ce nombre soit supérieur à 0,75 ou non.
L’échantillon, dont le nombre de blessés graves est supérieure à 1,25, se divise en 2
selon que ce nombre soit inférieur à 2 ,25 ou non. Le deuxième échantillon qui en résulte se
divise en 2 échantillons selon que le nombre de blessés graves soit supérieure à 1,75 ou non.
-
21
CONCLUSION
Notre travail sur une base de données « réelle » nous a permis de tirer des
enseignements quant aux difficultés de mise en œuvre d’analyse de données symboliques car,
par exemple, lorsque l’on travaille sur des données « réelles » nous pouvons être confrontés à
des données incohérentes, pouvant être dues à des erreurs de manipulations ou à l’absence de
donnée (saisie partielle, …). Il faut donc mettre un bon nombre de contrôles sur le ou les
dispositifs de saisie des informations dans la base de données et se poser des questions sur
l’intégrité du recueil des données.
En effet, en fonction du concept choisi, il arrive que l’on ne puisse dégager aucune
variable nominale qualitative. Il n’est alors pas possible d’exécuter certaines méthodes
d’analyse (TREE, DSD, FDA …).
Mais après ces quelques difficultés techniques, c’est à l’instant de la définition des
individus et des concepts que le risque d’erreur est important.
En effet, devant la multitude et l’hétérogénéité des données recueillies, il est très
difficile d’arrêter le périmètre de l’étude. Le risque réel est, soit de se disperser, soit au
contraire de se restreindre dans ses analyses. Le choix d’un seul concept, en ce sens, ne
permet pas forcément d’étendre l’analyse à tous les axes envisageables.
Ces quelques problèmes résolus, ce logiciel présente d’intéressantes capacités
d’analyse et permet en particulier de produire des résultats exploitables sous des formes
variées (listing, graphes, …).
Toutefois, il nécessite une phase d’appropriation, et ce n’est qu’après une solide
expérimentation que l’on peut jouir pleinement de toute sa puissance d’analyse des données
symboliques.