Vous êtes sur la page 1sur 105

1

BASES DE DONNES
DECISIONNELLES
&
FOUILLE DE DONNEES
Anne LAURENT
LIRMM POLYTECH'MONTPELLIER
http://www.lirmm.fr/~laurent
laurent@lirmm.fr
CNAM 2004/2005
2
Plan

Bases de donnes transactionnelles

Bases de donnes dcisionnelles

Entrepts de donnes et OLAP

Fouille de donnes

Logique floue et fouille de donnes

Conclusion
3
Bases de donnes
transactionnelles

Dfinition et Historique

Objectifs

limites
4
OLTP (On-Line Transactional
Processing)

Bases de donnes de production

Requtes

Simples (accs une partie de la base)

Frquentes

Nombreux oprateurs
5
Modles relationnels

Codd, annes 70

Besoins de

Cohrence

Non redondance (normalisation 3NF, BCNF)

Fracheur (mises jour frquentes)

Gestion des accs concurrents (transactions


concurrentes)
6
Exemples

Gestion de stock (achats / ventes)

Gestion du personnel

Bibliothque

Service facturation

...
7
Limites

Limites lies aux objectifs des bases


transactionnelles :

Incapacit fournir des services dcisionnels


(cot lev du calcul des jointures)

Requtes complexes impossibles

Navigation dans les donnes dans un but


analytique impossible

Connaissance du SQL indispensable la


manipulation des donnes
8
Bases de donnes
dcisionnelles

Historique

Objectifs et applications

Modlisation multidimensionnelle
9
Besoin de systmes d'analyse

Annes 1990

Codd (le mme !) - Arbor Software

Croissance des volumes de donnes


traits

Impossibilit aux dcideurs de les traiter sans


outils informatiques

Besoins de plus en plus complexes


10
Objectifs

Fournir aux dcideurs des outils d'analyse


de leurs donnes

Reporting

Navigation

Extraction de connaissances

...
11
Applications

Analyse des rsultats

Suivi de clientle (CRM Customer


Relationship Management)

Dfinition de profils clients

Dtection des mauvais fraudes

Churning

Anticipation

...
12
Requtes dcisionnelles

Complexes

Rares

trs gros volumes de donnes

Dcideurs (petit groupe)

Vision des donnes un niveau agrg


13
Vision multidimensionnelle

Analyse de faits en fonction de dimensions

Analyse des ventes selon la priode, le


lieu, le type de produit

Gestion de gros volumes de donnes

Redondance ?
14

Donnes historises

Matrialises

Volumineuses

Sources htrognes

Utilisation dcisionnelle
Entrepts de donnes
15

On-Line Analytical Processing

Codd 1993
catgorie d'applications et de technologies permettant de
collecter, stocker, traiter et restituer des donnes multidi-
mensionnelles, des fins d'analyse.

Exemples de requtes OLAP

Requtes complexes
Quel est le total des ventes de chaussures ?
Quel est le type des meilleures ventes sur une priode donne, pour
une ville prcise et un groupe dge ?

Requtes what if
Que se passerait-il si les prix diminuaient de 10% ?
OLAP
16
(On-Line Analytical Processing)

Requtes complexes
Optique dcisionnelle
Vision ensembliste (tendances ...)
Destin aux analystes et dcideurs
(peu nombreux)

Requtes simples
Production et Mise jour des donnes
Vision au niveau individuel
Destin aux agents oprationnels (nom-
breux)
OLAP vs. OLTP
(On-Line Transaction Processing)
OLAP vs OLTP
17
Exemple
PRODUIT
V
I
L
L
E
M
O
I
S
55000 92000
21000
65000 91000 43000
55000
12000 56000
78000
23000
85000
8000
88000
Cube des ventes
C : Produit x Ville x Mois Ventes
te
n
te
s
c
a
n
o

s
b
o
i
s
s
o
n
s
c
h
o
c
o
l
a
t
janvier
fvrier
mars
Boston
Chicago
New York
85000
18
Dimensions
Organisation des informations selon des
dimensions plates
et des dimensions hirarchises
hirarchies simples (arborescentes)
hirarchies complexes
Exemple :
SEMAINE MOIS
JOUR
TRIMESTRE
19
Fonctionnement gnral
Magasins
de donnes
(multidimensionnels)
Systmes de
fouille de don-
nes
Rgles
Assoc.
Sources de donnes
htrognes
Entrept
de donnes
Donnes externes
Mta
base
ETL
Analyse OLAP
Reporting
C
O
N
N
A
I
S
S
A
N
C
E
20
ETL 80% du travail !

E-xtract
Accs aux diffrentes sources

T-ransform
Nettoyage
gestion des inconsistances des donnes sources
formats de donnes
dtection des valeurs non valides

L-oad
Chargement dans l'entrept
21
Tables de faits : entit centrale
Objet de l'analyse, taille trs importante
Tables de dimensions : entits priphriques
Dimensions de l'analyse, taille peu importante
Table de faits normalise (BCNF)
N-uplets de la tables de faits :
Cls trangres formant une cl primaire
Valeurs associes chaque cl primaire (mesures)
Associations de type (0,n) (1,1) connectant les
diffrentes dimensions aux faits
Conception de l'entrept
22
Normalisation des tables
Etoile : tables dimensions non normalises
Flocon : tables de dimensions normalises
Rduction de la redondance
Maintenance simplifie
MAIS navigation coteuse
schma en toile
schma en flocon
23
Exemple : toile
Time Dimension
time_key
day_of_week
month
quarter
year
holiday_flag
Sales Fact
time_key
product_key
store_key
dollars_sold
units_sold
dollars_cost
Product Dimension
product_key
description
brand
category
Store Dimension
store_key
store_name
address
floor_plan_type
granularit de la table de
faits ?
24
Exemple : flocon
25
Magasins de donnes

Partie de l'entrept

Ddis une analyse particulire

Modlisation multidimensionnelle

Fouille de donnes / reporting / navigation


OLAP
26
Problmatiques associes

Calcul de l'hypercube (cube) de donnes

Stockage des donnes

Mise jour des donnes

Types de faits

Additif

Semi-additif

Non additif
27
Calcul de l'hypercube

Quel cube construire ?

Comment le construire ?

Requtes de type group by


SELECT mois, produit, ville, count(*)
FROM Ventes
GROUP BY mois, produit, ville

Ajout des agrgats (oracle)


GROUP BY CUBE
GROUP BY ROLLUP
GROUP BY GROUPING SETS
28
Stockage du cube

ROLAP (Relational OLAP) : les donnes sont stock-


es dans une base de donnes relationnelle. Le cube
n'est pas matrialis du tout sauf au moment de la
phase de requte

MOLAP (Multidimensional OLAP) : tout le cube est


matrialis physiquement

HOLAP (Hybrid OLAP) : seule une partie du cube est


matrialise sous forme multidimensionnelle. Les
autres donnes sont laisses dans la base relation-
nelle et extraites de manire dynamique au moment
des requtes
Les cubes sont trs clairsems (sparsity)
29
Mise jour des donnes

Incrmentale

Recalcul total du cube


30
Types de faits

Additif

On peut faire la somme des valeurs sur toutes les


dimensions

Quantit vendue

Semi-additif

Il est impossible de sommer les valeurs sur


certaines dimensions

Niveau de stock (pas sur la dimension temps)

Non additif

On ne peut faire la somme sur aucune dimension

Moyenne des ventes


31
Oprations OLAP

Visualisation :

Rotation

Inversion des valeurs de dimensions (switch)

Modification des donnes :

Slection sur les cellules (slice)

Slection sur les tranches (dice)

Gnralisation (roll-up)

Spcialisation (drill-down)
32
Rotation
33
Inversion
34
Slection sur les cellules
DICE
Critre de slection : valeurs infrieures 15
35
Slection sur les tranches
SLICE
36
Gnralisation/Spcialisation
37
Outils commerciaux

Business Objects

Hyperion Solutions (Essbase)

IBM (DB2 OLAP Server)

Microsoft (SQL Server)

Oracle (Express Oracle 9i Oracle 10g)

SAS
38
Oracle et OLAP
OLAP OPTION

Analytic Workspace et OLAP DML (TAD)

Requtes de partitionnement

Fonctions d'analyse

Outils ETL

Outils d'analyse
39
MOLAP ROLAP - HOLAP
40
Requtes de partitionnement :
group by
SQL> select ville, etat, count(*)
from abonne, emprunt, exemplaire
where abonne.num_ab = emprunt.num_ab
and exemplaire.numero = emprunt.num_ex
group by ville, etat;
VILLE ETAT COUNT(*)
------------------------------ --------------- ----------
BEZIER BON 4
BEZIER ABIME 2
MONTPELLIER BON 18
MONTPELLIER ABIME 2
41
Requtes de partitionnement :
group by cube
SQL> select ville, etat, count(*)
from abonne, emprunt, exemplaire
where abonne.num_ab = emprunt.num_ab
and exemplaire.numero = emprunt.num_ex
group by cube(ville, etat);
VILLE ETAT COUNT(*)
------------------------------ --------------- ----------
26
BON 22
ABIME 4
BEZIER 6
BEZIER BON 4
BEZIER ABIME 2
MONTPELLIER 20
MONTPELLIER BON 18
MONTPELLIER ABIME 2
9 rows selected.
42
Requtes de partitionnement :
group by rollup
SQL> select ville, etat, count(*)
from abonne, emprunt, exemplaire
where abonne.num_ab = emprunt.num_ab
and exemplaire.numero = emprunt.num_ex
group by rollup (ville, etat);

VILLE ETAT COUNT(*)
------------------------------ --------------- ----------
BEZIER BON 4
BEZIER ABIME 2
BEZIER 6
MONTPELLIER BON 18
MONTPELLIER ABIME 2
MONTPELLIER 20
26
7 rows selected.
43
Requtes de partitionnement : group
by rollup avec fonction DECODE
SQL> select decode(grouping (ville),1,'Toutes les villes', ville ) ville,
2 decode(grouping (etat),1,'Tous etats confondus', etat ) etat,
3 count(*)
4 from abonne, emprunt, exemplaire
5 where abonne.num_ab = emprunt.num_ab
6 and exemplaire.numero = emprunt.num_ex
7 group by rollup (ville, etat);
VILLE ETAT COUNT(*)
------------------------------ -------------------- ----------
BEZIER BON 4
BEZIER ABIME 2
BEZIER Tous etats confondus 6
MONTPELLIER BON 18
MONTPELLIER ABIME 2
MONTPELLIER Tous etats confondus 20
Toutes les villes Tous etats confondus 26
44
Requtes de partitionnement : group
by grouping sets
SQL> select ville, etat, count(*)
from abonne, emprunt, exemplaire
where abonne.num_ab = emprunt.num_ab
and exemplaire.numero = emprunt.num_ex
group by grouping sets ((ville, etat), ()) ;
VILLE ETAT COUNT(*)
------------------------------ --------------- ----------
BEZIER BON 4
BEZIER ABIME 2
MONTPELLIER BON 18
MONTPELLIER ABIME 2
26
45
Fonctions d'analyse : rank
SQL> select *
from (select ville,etat,count(*),
rank() over (order by count(*) desc) as rnk
from emprunt, abonne, exemplaire
where emprunt.num_ab = abonne.num_ab and
exemplaire.numero=emprunt.num_ex
group by ville, etat) ;

VILLE ETAT COUNT(*) RNK
------------------------------ --------------- ---------- ----------
MONTPELLIER BON 18 1
BEZIER BON 4 2
BEZIER ABIME 2 3
MONTPELLIER ABIME 2 3
46
Fonctions d'analyse : TOP-N
SQL> select *
from (select ville,etat,count(*),
rank() over (order by count(*) desc) as rnk
from emprunt, abonne, exemplaire
where emprunt.num_ab = abonne.num_ab and
exemplaire.numero=emprunt.num_ex
group by ville, etat)
where rnk <= 2 ;
VILLE ETAT COUNT(*) RNK
------------------------------ --------------- ---------- ----------
MONTPELLIER BON 18 1
BEZIER BON 4 2
47
Fonctions d'analyse : BOTTOM-N
SQL> select *
from (select ville,etat,count(*),
rank() over (order by count(*)) as rnk
from emprunt, abonne, exemplaire
where emprunt.num_ab = abonne.num_ab and
exemplaire.numero=emprunt.num_ex
group by ville, etat)
where rnk <= 2 ;
VILLE ETAT COUNT(*) RNK
------------------------------ --------------- ---------- ----------
BEZIER ABIME 2 1
MONTPELLIER ABIME 2 1
48
Fonctions d'analyse :
ratio_to_report
SQL> select abonne.num_ab, ville, count(*),
ratio_to_report(count(*)) over (partition by ville) as ratio
from emprunt, abonne
where emprunt.num_ab = abonne.num_ab
group by ville, abonne.num_ab ;

NUM_AB VILLE COUNT(*) RATIO
---------- ------------------------------ ---------- ----------
911007 BEZIER 6 1
901001 MONTPELLIER 4 ,2
902043 MONTPELLIER 4 ,2
902075 MONTPELLIER 2 ,1
911021 MONTPELLIER 1 ,05
911023 MONTPELLIER 6 ,3
921102 MONTPELLIER 3 ,15
49
Vues matrialises : cration
SQL> CREATE MATERIALIZED VIEW OLAPV_EMPRUNTS
2 REFRESH START WITH SYSDATE NEXT SYSDATE+1
3 ENABLE QUERY REWRITE
4 AS
5 SELECT VILLE, ETAT, COUNT(*)
6 FROM EMPRUNT, EXEMPLAIRE, ABONNE
7 WHERE EMPRUNT.NUM_AB=ABONNE.NUM_AB AND
EXEMPLAIRE.NUMERO=EMPRUNT.NUM_EX
8 GROUP BY VILLE, ETAT;
Materialized view created.
50
Vues matrialises : interrogation
SQL> select * from olapv_emprunts;
VILLE ETAT COUNT(*)
------------------------------ --------------- ----------
BEZIER BON 4
BEZIER ABIME 2
MONTPELLIER BON 18
MONTPELLIER ABIME 2
SQL> insert into emprunt values
(911007,1010,SYSDATE,NULL,NULL,NULL);
1 row created.
SQL> select * from olapv_emprunts;
VILLE ETAT COUNT(*)
------------------------------ --------------- ----------
BEZIER BON 4
BEZIER ABIME 2
MONTPELLIER BON 18
MONTPELLIER ABIME 2
51
Vues matrialises :
rafrachissement
SQL> begin
dbms_mview.refresh('olapv_emprunts');
end;
/
PL/SQL procedure successfully completed.
SQL> select * from olapv_emprunts;
VILLE ETAT COUNT(*)
------------------------------ --------------- ----------
BEZIER BON 5
BEZIER ABIME 2
MONTPELLIER BON 18
MONTPELLIER ABIME 2
52
Fouille de donnes
Quest-ce que la fouille de donnes ?
Fayyad (1996) Knowledge Discovery in
Databases :"the non-trivial process of identifying
valid, potentially useful and ultimately understand-
able patterns in data"
KDD vs. Data Mining
statistiques
I.A.
apprentissage
Bases de
donnes
I.H.M.
53
exemples dapplication
diagnostic mdical
profils de clients, mailing, accord de prts
bancaires, ...
reconnaissance de caractres manuscrits
finance, prvision dvolutions de marchs
Customer Relationship Management (CRM) : trouver,
gagner et garder ses clients !

churning,

dtection de fraudes,

dtection de mauvais payeurs,


54
Tches de fouille de donnes
Classification
Estimation
Prdiction
Rgles dassociation
Segmentation
55
Algorithmes superviss et non superviss
Apprentissage supervis :

On dispose d'un fichier dcrivant des donnes al-


liant une description et une classe

On cherche une fonction de classification per-


mettant d'induire la classe en fonction d'une de-
scription
Apprentissage non supervis :

On dispose d'un fichier de description des don-


nes sans classes connues a priori

On cherche diviser ces donnes en catgories


56
Algorithmes prdictifs et descriptifs
Veut-on
Trouver une fonction permettant de prdire
la classe d'une donnes jamais vue
Ou
Trouver des descriptions rsumes et per-
tinentes expliquant les donnes
La limite entre les 2 est floue ! (mthodes
descriptives pour la prdiction)
57
Problmatiques associes
donnes pas forcment trs propres :

donnes bruites

donnes manquantes

Donnes aberrantes

doublons
donnes numriques, symboliques
pr-traitements
post-traitements
58
Quelques algorithmes

Intelligence artificielle

Plusieurs algorithmes :

Segmentation (clustering)

Naive bayes

K plus proches voisins

Apprentissage par renforcement

Rseaux de neurones

Arbres de dcision

...

Rgles d'association et motifs squentiels


59
Mthode de Bayes naf

Comment classer un nouvel exemple en


fonction dun ensemble dexemples pour
lesquels on connat la classe ?

Soit un exemple d = (d1, ..., dn) et c


classes k = 1, ..., c
Classe(d) = argmax H P(di|k) . P(k)
k i
proportion dexemples di parmi ceux de la classe k
proportion dexemples de la classe k
60
Exemple : va-t-on jouer au
tennis ?
Va-t-on jouer sil y a du soleil, beauc-
oup dhumidit et pas de vent ?
Soleil
pluvieux
Soleil
pluvieux
pluvieux
nuageux
Soleil
Soleil
TEMPS
? Non haute
Non Non Basse Ex7
Oui Oui Basse Ex6
Non Oui Basse Ex5
Non Oui Haute Ex4
Oui Oui Basse Ex3
Non Non Basse Ex2
Oui Oui Haute Ex1
TENNIS VENT HUMIDITE
61
k plus proches voisins

Raisonnement partir de cas

Utilisation des cas similaires pour prendre


une dcision

Pas dtape dapprentissage (avantages


et inconvnients)
62
Algorithme
Dcider du nombre de voisins utiliser
k (souvent k = nbre dattributs + 1)
Pour un enregistrement sur lequel il
faut dcider :

trouver les k plus proches voisins

combiner les classes des k plus proches


voisins en une classe c
63
Choix de la distance
d(A,A) = 0
Rappel : distance d d(A,B) = d(B,A)
d(A,C) < d(A,B) + d(B,C)
Distance sur chacun des attributs
d(x,y) = |x-y| d(x,y) = |x-y| / distance_max
puis combinaison. distance euclidienne :
d(x,y) =
\
\ [d
1
(x
1
,y
1
)
2
+...+ d
n
(x
n
,y
n
)
2
]
64
Choix de la classe
on dispose des k classes des k plus
proches voisins
choix de la classe du nouvel exemple :

classe majoritaire

classe pondre
Le rsultat change en fonction de tous
ces choix (distance, combinaison, cal-
cul de la classe)
65
Exemple : va-t-on jouer au
tennis avec cette mthode ?
on choisit k = 4
distance euclidienne
d(A,A)=0
d(A,B)=1
calcul des voisins
combinaison des classes des voisins
66
Exemple : va-t-on jouer au
tennis ?
Va-t-on jouer sil y a du soleil, beauc-
oup dhumidit et pas de vent ?
Soleil
pluvieux
Soleil
pluvieux
pluvieux
nuageux
Soleil
Soleil
TEMPS
? Non haute
Non Non Basse Ex7
Oui Oui Basse Ex6
Non Oui Basse Ex5
Non Oui Haute Ex4
Oui Oui Basse Ex3
Non Non Basse Ex2
Oui Oui Haute Ex1
TENNIS VENT HUMIDITE
67
Arbres de dcision

Reprsentation graphique dune procdure de dcision


Reprsentation comprhensive rgles
tem-
prature
gorge ir-
rite
malade
malade non malade
normale
forte
oui non
feuille
nud
arc
Classes
Attributs
Tests sur
les attributs
68
Problmatiques associes
Choix des attributs tests (divisions success-
ives de la base dapprentissage)
Critre darrt
But : construire un arbre le plus petit possible
Heuristique. Algorithme glouton.
Plusieurs algorithmes (ID3, C4.5)
69
Algorithme de construction
Nud Courant racine
Rpter

Si le nud courant est terminal

Alors ltiqueter Nud Courant Classe

Sinon
Slectionner un attribut test
Crer le sous-arbre

Passer au nud suivant non explor


Jusqu obtention dun arbre
70
Critre darrt
Plusieurs tests possibles pour dcider
si le nud courant est terminal :

il ny a plus assez dexemples

les exemples ne sont pas trop mlangs


(une classe se dgage). seuil dimpuret.
On tiquette avec la classe majoritaire
71
Slection de lattribut test
Quel est lattribut dont la connaissance
nous aide le plus sur la classe ?
Plusieurs critres possibles : test de
Gini, gain dinformation, entropie, ...
ID3 : entropie de Shannon
72
Entropie de Shannon
Entropie de l'attribut A
A a i valeurs possibles X
1
, ..., X
i
Il y a k classes C
1
, ..., C
k
H
s
(C|A) = - E P(X
i
) E P(C
k
|X
i
). log((P(C
k
|X
i
)))
i k
73
Exemple : va-t-on jouer au
tennis avec cette mthode ?
Construction de larbre
Racine : choix du 1er attribut test

Calcul de H(C|temps)

Calcul de H(C|humidit)

Calcul de H(C|vent)
Division de la base dexemple
Nuds terminaux ?
74
Exemple : va-t-on jouer au
tennis ?
Va-t-on jouer sil y a du soleil, beauc-
oup dhumidit et pas de vent ?
Soleil
pluvieux
Soleil
pluvieux
pluvieux
nuageux
Soleil
Soleil
TEMPS
? Non haute
Non Non Basse Ex7
Oui Oui Basse Ex6
Non Oui Basse Ex5
Non Oui Haute Ex4
Oui Oui Basse Ex3
Non Non Basse Ex2
Oui Oui Haute Ex1
TENNIS VENT HUMIDITE
75
Attributs continus
ID3 ne les prend pas en charge
discrtisation par un expert
algorithme C4.5 :

test et calcul de lentropie avec toutes les


coupures possibles entre les valeurs suc-
cessives

exemple sur les valeurs 3,4,8 on testera


< 3,5 vs. > 3,5
< 6 vs. > 6
76
Avantages et inconvnients
attention au sur-apprentissage lagage
performances moins bonnes si beaucoup de
classes
algorithme non incrmental
on peut expliquer une dcision
permet la slection des attributs pertinents (feature
selection)
classification rapide dun nouvel exemple (parcours
d'un chemin darbre)
77
Rseaux de neurones

Mthode de type bote noire

Nombreuses applications (notamment re-


connaissance dcriture manuscrite)

Mthode coteuse en temps de calcul

Topologie connatre
78
Une mthode issue des modles biologiques

Chaque neurone disposer en moyenne de 10.000 points de contacts


(synapses) avec les neurones qui l'entourent, et jusqu 50.000 !
Nous disposons de quelques dizaines de milliards de ces neurones
l'intrieur de notre cerveau
De synapse en synapse, l'information transite dans la totalit de notre
corps, au travers d'environ 500 000 milliards de synapses
79
Neurone biologique
un neurone (biologique) est un noeud qui a
plusieurs entres et une sortie
Les entres proviennent dautres neurones
ou organes sensoriels
Les entres sont pondres
Les poids peuvent tre positifs ou ngatifs
Les entres sont sommes au niveau du
noeud pour produire une valeur dactiva-
ation
Si lactivation est plus grande quun certain
seuil, le neurone sactive
f
E
80
Problmes linairement ou
non linairement sparables
on distingue 2 types de problmes
pour 2 types de solution
x1 x2 OU XOR
0 0 0 0
0 1 1 1
1 0 1 1
1 1 1 0
0
0
1
1
1
1
1
1
OU
OU
0
0
1
1
1
1
0
0
XOR
XOR
perceptron
perceptron
multi-couches
81
Approche informatique :
perceptron
ENTREES POIDS
SORTIE
FONCTION SEUIL
SOMMATION
PLUSIEURS
CLASSES
82
Perceptron multi-couches
COUCHE DENTREE
COUCHE CACHEE
COUCHE DE SORTIE
83
Algorithme dapprentissage
des poids
Initialiser les poids de manire alatoire
Rpter

Pour chaque exemple i


Si la sortie s nest pas gale la sortie attendue a

Alors poids w
i
w
i
+ (a - s)x
i
Jusqu ce que tous les exemples soient
bien classs
84
Segmentation (Clustering)

But : diviser la population en groupes

Minimiser la similarit intra-groupe

Maximiser la similarit inter-groupes

Exemple : notes
85
Algorithme des k-moyennes
1. Choisir le nombre de groupes crer k
2. Choisir k centres initiaux c
1
, .., c
k
3. Pour chaque exemple, laffecter au groupe i
dont le centre est le plus proche
4. Si aucun exemple ne change de groupe
5. Alors STOP
6. Sinon
a) Calculer les nouveaux centres :
Pour i = 1 k
c
i
est la moyenne des lments du groupe
b) Aller en 3)
86
Exemple : faire 2 groupes
dtudiants
10
Centres initiaux : c1=(11,13) c2=(14,18)
d(e1,c1)= [(14-11)
2
+ (14-13)
2
]
1/2
= 3.16
d(e1,c2) = [(14-14)
2
+ (14-18)
2
]
1/2
~ 4
d(e2,c1)= 4.12 d(e2,c2) ~ 2.24
d(e3,c1) > d(e3,c2)
d(e4,c1) < d(e4,c2)
d(e5,c1) > d(e5,c2)
Nouveaux centres :
c1 = ((14+10)/2,(14+11)/2) = (12,12.5)
c2 = ((12+16+14)/3),(17+20+16)/3)=(14,17.6)
calcul de d(e1,c1) d(e1,c2)
rsultat inchang FIN
1 14 14
2 12 17
3 16 20
4 10 11
5 14 16
e
e
e
e
e
e1
e2
e3
e4
e5
87
Problmes
Ncessit de lexistence dune dis-
tance
Choix de k
Influence du choix des centres initiaux
sur le rsultat
Normalisation des attributs
88
Evaluation des mthodes

Apprentissage supervis : valuation sur une


base dexemples test

Mthodes de sparation entre les bases


dapprentissage et de test.

on dispose de deux bases spares

on coupe la base en deux

validation croise. Leave One Out.


89
Validation croise

Dcoupage de la base d'exemples en n


sous-base b
1
, ... , b
n

n apprentissages :

On apprend sur n-1 sous-bases

On teste sur la sous-base restante

Moyenne des n rsultats

n = 10 fonctionne bien

Leave one out


90
Critres dvaluation
Taux de bon apprentissage
Parmi tous les exemples, quelle proportion est bien
classe ?
Prcision de la classe k
Parmi les exemples classs dans la classe k, quelle
proportion est effectivement de la classe k ?
Rappel de la classe k
Parmi les exemples de la classe k, quelle proportion se
retrouvent classs dans la classe k ?
Prcision contre Rappel
Matrice de confusion : table de contingence
91
Matrice de confusion
Prdit OBSERVE
Pay Retard Impay TOTAL
Pay 80 15 5 100
Retard 1 17 2 20
Impay 5 2 23 30
TOTAL 86 34 30 150
Validit du modle (taux dapprentissage) : nombre de cas exacts (=somme de la di-
agonale) divis par le nombre total : 120/150 = 0.8
Rappel de la classe Pay : nombre de cas prdits et observs pay divis par le nombre
total de cas observs pays : 80/86 = 0.93
Prcision de la classe Pay : nombre de cas observs et prdits pay divis par le
nombre total de cas prdits pays : 80/100 = 0.8
92
Logiciels de fouille de donnes
Intelligent Miner (www.ibm.com)
Entreprise Miner (SAS Institute)
MineSet (Silicon Graphics Inc.)
Clementine (Integral Solutions Ltd, rachet par
SPSS)
DBMiner (www.dbminer.com)
Oracle Darwin data mining suite
Oracle Discoverer
Weka
Rainbow
93
LOGIQUE FLOUE ET
FOUILLE DE DONNEES
Logique floue 1965
Contrle flou
Fouille de donnes floue (viter les coupures brutales) :

Rseaux de neurones

Arbres de dcision

Clustering

...
94
Logique floue
Lotfi Zadeh
Extension du contexte boolen classique
Vrit partielle, entre compltement vrai et com-
pltement faux
Une personne est-elle grande ?
Monde discret monde continu
Appartenance granduelle
Thorie des sous-ensembles classique : apparten-
ance ou non (0 ou 1)
Thorie des sous-ensembles flous : appartenance
comprise entre 0 et 1
95
Fonctions d'appartenance
Taille d'une personne
Partition floue des tailles possibles
Sous-ensemble flous : petit moyen grand
Pour chaque taille (en cm), on dfinit quel point
cette taille correspond petit, moyen, grand
Une personne peut tre considre dans plusieurs
sous-ensembles flous de la partition
Une personne est petite, moyenne, grande avec des
degrs de vrit
96
d appartenance
taille
0
1

moyen
petit

grand
97
Donnes floues
Gnralisation des donnes classiques
prcises (singleton) et certaines (confiance 1)
Donnes imprcises
il est jeune
Donnes incertaines
il a vraisemblablement 18 ans
degr de confiance 0.8
Donnes imprcises et incertaines
d appartenance
ge
0
1

jeune
0.2
18
0
1
18
1
0
1
98
Arbres de dcision flous : historique

Chang et Pavlidis (1977), Adamo (1980) : util-


isation floue d'arbres de dcision classiques
(respect des tests chaque nud de l'arbre)

Bouchon (1981) : questionnaires flous


(tiquettes floues sur les tests)

Nombreux dveloppements aprs ID3 (Quinlan


1984)

Janikow (1984)

Ramdani (1992)

Marsala (1998)

...
99
Partitionner la base
Sur l'attribut A ayant m valeurs, on cre m sous-bases
Cas classique : les exemples sont facilement sparables
selon qu'ils correspondent l'une ou l'autre branche de
l'arbre
Cas flou : recouvrements
Straggies possibles :

Rptition des exemples affects d'un degr d'appar-


tenance

o-coupe (Salammb) cration d'une partition


classique

Dupliquer les exemples de l'intersection floue dans les


deux sous-bases avec un degr 1

Cration d'une branche spcifique l'intersection (con-


struction d'un sous-arbre sur ce sous-ensemble d'ex-
emples)
100
Infrence dans l'arbre flou

Utlisation du modus ponens gnralis

La nouvelle donne est injecte dans la


racine et traverse l'arbre :

Utilisation de l'algorithme min-max :

Sur chaque branche on considre le minimum


des valuations par les tests

On considre la classe correspondant la


branche value avec la valeur maximale
101
1

1

1
DAM
NOP

NOP
9 15
5 12
0.55
0.7
8

Exemple, donne test (NOP=11.0, DAM=0.6)


DAM NOP
NOP
0.65 0.35
0 1 0 1
0.2
0.8
0.7 0.3
0.2 0.65 0.35
0.3
102
Clustering flou

Fuzzy C-Means

Une donne peut appartenir plusieurs


catgories

Degr d'appartenance entre 0 et 1

Degr de flou (recouvrement) dfini


dans l'algorithme (fonction de calcul des
appartenances)
103
Rseaux de neurones flous

Seuils de transition moins brutaux

Calcul de systmes de rgles floues Si Alors

Reprsentation du systme de rgles par un rseau

Dtermination des paramtres par les algorithmes de


calcul des poids
104
Conclusion
Ncessit d'outils ddis aux bases de donnes dcisionnelles
Navigation OLAP / fouille de donnes / reporting / tableaux de bord
il existe de nombreuses (autres) mthodes
et pas de meilleure
mthode choisir selon
les donnes (continues ? manquantes ? volumineuses ? denses ?
...)
la tche
le temps de calcul dont on dispose
rgle du rasoir dOckham :
pluralitas non est ponenda sine neccessitate
Les choses essentielles ne doivent pas tre multiplies sans ncessit
autres types de donnes
105
Bibliographie

Ralph Kimball, Entrepts de Donnes, Vuibert,


2002.

Jiawei Han, Micheline Kamber, Data Mining:


Concepts and Techniques, Morgan Kaufmann
Publishers, 2000.

http://www.oracle.com

Vous aimerez peut-être aussi