cyclec
TRANSCRIPT
-
7/29/2019 cycleC
1/105
1
BASES DE DONNES
DECISIONNELLES&
FOUILLE DE DONNEESAnne LAURENT
LIRMM POLYTECH'MONTPELLIERhttp://www.lirmm.fr/~laurent
CNAM 2004/2005
-
7/29/2019 cycleC
2/105
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
-
7/29/2019 cycleC
3/105
3
Bases de donnestransactionnelles
Dfinition et Historique
Objectifs limites
-
7/29/2019 cycleC
4/1054
OLTP (On-Line TransactionalProcessing)
Bases de donnes de production
Requtes
Simples (accs une partie de la base)
Frquentes
Nombreux oprateurs
-
7/29/2019 cycleC
5/1055
Modles relationnels
Codd, annes 70
Besoins de Cohrence
Non redondance (normalisation 3NF, BCNF)
Fracheur (mises jour frquentes)
Gestion des accs concurrents (transactionsconcurrentes)
-
7/29/2019 cycleC
6/1056
Exemples
Gestion de stock (achats / ventes)
Gestion du personnel Bibliothque
Service facturation
...
-
7/29/2019 cycleC
7/1057
Limites
Limites lies aux objectifs des basestransactionnelles :
Incapacit fournir des services dcisionnels(cot lev du calcul des jointures)
Requtes complexes impossibles
Navigation dans les donnes dans un butanalytique impossible
Connaissance du SQL indispensable lamanipulation des donnes
B d d
-
7/29/2019 cycleC
8/1058
Bases de donnesdcisionnelles
Historique
Objectifs et applications
Modlisation multidimensionnelle
-
7/29/2019 cycleC
9/1059
Besoin de systmes d'analyse
Annes 1990
Codd (le mme !) - Arbor Software Croissance des volumes de donnes
traits
Impossibilit aux dcideurs de les traiter sansoutils informatiques
Besoins de plus en plus complexes
-
7/29/2019 cycleC
10/10510
Objectifs
Fournir aux dcideurs des outils d'analysede leurs donnes
Reporting
Navigation
Extraction de connaissances
...
-
7/29/2019 cycleC
11/105
11
Applications
Analyse des rsultats
Suivi de clientle (CRM CustomerRelationship Management)
Dfinition de profils clients
Dtection des mauvais fraudes
Churning
Anticipation
...
-
7/29/2019 cycleC
12/105
12
Requtes dcisionnelles
Complexes
Rares trs gros volumes de donnes
Dcideurs (petit groupe)
Vision des donnes un niveau agrg
-
7/29/2019 cycleC
13/105
13
Vision multidimensionnelle
Analyse de faits en fonction de dimensions
Analyse des ventes selon lapriode, lelieu, le type deproduit
Gestion de gros volumes de donnes
Redondance ?
-
7/29/2019 cycleC
14/105
14
Donnes historises
Matrialises Volumineuses
Sources htrognes
Utilisation dcisionnelle
Entrepts de donnes
-
7/29/2019 cycleC
15/105
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, pourune ville prcise et un groupe dge ?
Requtes what if
Que se passerait-il si les prix diminuaient de 10% ?
OLAP
-
7/29/2019 cycleC
16/105
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
-
7/29/2019 cycleC
17/105
17
Exemple
PRODUIT
V
ILLE
MOIS
55000 92000
21000
650009100043000
55000
1200056000
78000
23000
85000
8000
88000
Cube des ventes
C : Produit x Ville x Mois Ventes
tentes
canos
boiss
ons
choc
olat
janvier
fvriermars
Boston
Chicago
New York 85000
-
7/29/2019 cycleC
18/105
18
Dimensions
Organisation des informations selon desdimensionsplates
et des dimensions hirarchises
hirarchies simples (arborescentes)
hirarchies complexes
Exemple :
SEMAINE MOIS
JOUR
TRIMESTRE
-
7/29/2019 cycleC
19/105
19
Fonctionnement gnral
Magasins
de donnes
(multidimensionnels)
Systmes defouille de don-
nes
Rgles
Assoc.
Sources de donnes
htrognes
Entrept
de donnes
Donnes externes
Mta
base
ETL
Analyse OLAP
Reporting
CON
NAISS
ANCE
-
7/29/2019 cycleC
20/105
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
-
7/29/2019 cycleC
21/105
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 primaireValeurs associes chaque cl primaire (mesures)
Associations de type (0,n) (1,1) connectant les
diffrentes dimensions aux faits
Conception de l'entrept
-
7/29/2019 cycleC
22/105
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
-
7/29/2019 cycleC
23/105
23
Exemple : toile
Time Dimension
time_key
day_of_week
monthquarter
year
holiday_flag
Sales Fact
time_key
product_key
store_key
dollars_sold
units_solddollars_cost
Product Dimension
product_key
description
brand
category
Store Dimension
store_key
store_name
address
floor_plan_typegranularit de la table de
faits ?
-
7/29/2019 cycleC
24/105
24
Exemple : flocon
-
7/29/2019 cycleC
25/105
25
Magasins de donnes
Partie de l'entrept
Ddis une analyse particulire
Modlisation multidimensionnelle
Fouille de donnes / reporting / navigationOLAP
-
7/29/2019 cycleC
26/105
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
-
7/29/2019 cycleC
27/105
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
-
7/29/2019 cycleC
28/105
28
Stockage du cube
ROLAP (Relational OLAP) : les donnes sont stock-es dans une base de donnes relationnelle. Le cuben'est pas matrialis du tout sauf au moment de laphase de requte
MOLAP (Multidimensional OLAP) : tout le cube estmatrialis physiquement
HOLAP (Hybrid OLAP) : seule une partie du cube estmatrialise sous forme multidimensionnelle. Les
autres donnes sont laisses dans la base relation-nelle et extraites de manire dynamique au momentdes requtes
Les cubes sont trs clairsems (sparsity)
-
7/29/2019 cycleC
29/105
29
Mise jour des donnes
Incrmentale
Recalcul total du cube
-
7/29/2019 cycleC
30/105
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 surcertaines dimensions
Niveau de stock (pas sur la dimension temps)
Non additif
On ne peut faire la somme sur aucune dimension
Moyenne des ventes
-
7/29/2019 cycleC
31/105
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)
-
7/29/2019 cycleC
32/105
32
Rotation
-
7/29/2019 cycleC
33/105
33
Inversion
-
7/29/2019 cycleC
34/105
34
Slection sur les cellules
DICE
Critre de slection : valeurs infrieures 15
-
7/29/2019 cycleC
35/105
35
Slection sur les tranches
SLICE
-
7/29/2019 cycleC
36/105
36
Gnralisation/Spcialisation
Outils commerciaux
-
7/29/2019 cycleC
37/105
37
Outils commerciaux
Business Objects
Hyperion Solutions (Essbase)
IBM (DB2 OLAP Server)
Microsoft (SQL Server)
Oracle (Express Oracle 9i Oracle 10g) SAS
Oracle et OLAP
-
7/29/2019 cycleC
38/105
38
Oracle et OLAP
OLAP OPTION
Analytic Workspace et OLAP DML (TAD)
Requtes de partitionnement
Fonctions d'analyse
Outils ETL Outils d'analyse
MOLAP ROLAP HOLAP
-
7/29/2019 cycleC
39/105
39
MOLAP ROLAP - HOLAP
Requtes de partitionnement :
-
7/29/2019 cycleC
40/105
40
q pgroup by
SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere abonne.num_ab = emprunt.num_ab
and exemplaire.numero = emprunt.num_exgroup by ville, etat;
VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2
Requtes de partitionnement :
-
7/29/2019 cycleC
41/105
41
group by cube
SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere abonne.num_ab = emprunt.num_ab
and exemplaire.numero = emprunt.num_exgroup by cube(ville, etat);
VILLE ETAT COUNT(*)------------------------------ --------------- ----------
26BON 22ABIME 4
BEZIER 6BEZIER BON 4BEZIER ABIME 2MONTPELLIER 20MONTPELLIER BON 18MONTPELLIER ABIME 2
9 rows selected.
Requtes de partitionnement :
-
7/29/2019 cycleC
42/105
42
group by rollup
SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere abonne.num_ab = emprunt.num_ab
and exemplaire.numero = emprunt.num_exgroup by rollup (ville, etat);
VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4BEZIER ABIME 2BEZIER 6
MONTPELLIER BON 18MONTPELLIER ABIME 2MONTPELLIER 20
26
7 rows selected.
Requtes de partitionnement : group
-
7/29/2019 cycleC
43/105
43
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, exemplaire5 where abonne.num_ab = emprunt.num_ab6 and exemplaire.numero = emprunt.num_ex
7 group by rollup (ville, etat);
VILLE ETAT COUNT(*)------------------------------ -------------------- ----------BEZIER BON 4
BEZIER ABIME 2BEZIER Tous etats confondus 6MONTPELLIER BON 18MONTPELLIER ABIME 2MONTPELLIER Tous etats confondus 20
Toutes les villes Tous etats confondus 26
Requtes de partitionnement : group
-
7/29/2019 cycleC
44/105
44
by grouping sets
SQL> select ville, etat, count(*)from abonne, emprunt, exemplairewhere 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 2MONTPELLIER BON 18MONTPELLIER ABIME 2
26
Fonctions d'analyse : rank
-
7/29/2019 cycleC
45/105
45
Fonctions d analyse : rank
SQL> select *from (select ville,etat,count(*),
rank() over (order by count(*) desc) as rnkfrom emprunt, abonne, exemplaire
where emprunt.num_ab = abonne.num_ab andexemplaire.numero=emprunt.num_ex
group by ville, etat) ;VILLE ETAT COUNT(*) RNK
------------------------------ --------------- ---------- ----------MONTPELLIER BON 18 1BEZIER BON 4 2BEZIER ABIME 2 3MONTPELLIER ABIME 2 3
Fonctions d'analyse : TOP-N
-
7/29/2019 cycleC
46/105
46
Fonctions d analyse : TOP N
SQL> select *from (select ville,etat,count(*),
rank() over (order by count(*) desc) as rnkfrom emprunt, abonne, exemplaire
where emprunt.num_ab = abonne.num_ab andexemplaire.numero=emprunt.num_ex
group by ville, etat)where rnk
-
7/29/2019 cycleC
47/105
47
Fonctions d analyse : BOTTOM N
SQL> select *from (select ville,etat,count(*),
rank() over (order by count(*)) as rnkfrom emprunt, abonne, exemplaire
where emprunt.num_ab = abonne.num_ab andexemplaire.numero=emprunt.num_ex
group by ville, etat)where rnk
-
7/29/2019 cycleC
48/105
48
ratio_to_report
SQL> select abonne.num_ab, ville, count(*),ratio_to_report(count(*)) over (partition by ville) as ratio
from emprunt, abonnewhere emprunt.num_ab = abonne.num_abgroup by ville, abonne.num_ab ;
NUM_AB VILLE COUNT(*) RATIO
---------- ------------------------------ ---------- ----------911007 BEZIER 6 1901001 MONTPELLIER 4 ,2
902043 MONTPELLIER 4 ,2902075 MONTPELLIER 2 ,1911021 MONTPELLIER 1 ,05911023 MONTPELLIER 6 ,3921102 MONTPELLIER 3 ,15
Vues matrialises : cration
-
7/29/2019 cycleC
49/105
49
Vues matrialises : cration
SQL> CREATE MATERIALIZED VIEW OLAPV_EMPRUNTS2 REFRESH START WITH SYSDATE NEXT SYSDATE+13 ENABLE QUERY REWRITE4 AS
5 SELECT VILLE, ETAT, COUNT(*)6 FROM EMPRUNT, EXEMPLAIRE, ABONNE7 WHERE EMPRUNT.NUM_AB=ABONNE.NUM_AB AND
EXEMPLAIRE.NUMERO=EMPRUNT.NUM_EX8 GROUP BY VILLE, ETAT;
Materialized view created.
Vues matrialises : interrogation
-
7/29/2019 cycleC
50/105
50
Vues matrialises : interrogation
SQL> select * from olapv_emprunts;
VILLE ETAT COUNT(*)------------------------------ --------------- ----------BEZIER BON 4BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER 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 4BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2
Vues matrialises :rafrachissement
-
7/29/2019 cycleC
51/105
51
rafrachissement
SQL> begindbms_mview.refresh('olapv_emprunts');
end;/
PL/SQL procedure successfully completed.
SQL> select * from olapv_emprunts;
VILLE ETAT COUNT(*)
------------------------------ --------------- ----------BEZIER BON 5BEZIER ABIME 2MONTPELLIER BON 18MONTPELLIER ABIME 2
Fouille de donnes
-
7/29/2019 cycleC
52/105
52
Fouille de donnes
Quest-ce que la fouille de donnes ?
Fayyad (1996) Knowledge Discovery inDatabases :"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 dedonnes
I.H.M.
exemples dapplication
-
7/29/2019 cycleC
53/105
53
p pp
diagnostic mdicalprofils de clients, mailing, accord de prts
bancaires, ...
reconnaissance de caractres manuscrits
finance, prvision dvolutions de marchsCustomer Relationship Management (CRM) : trouver,
gagner et garder ses clients ! churning,
dtection de fraudes,
dtection de mauvais payeurs,
T h d f ill d d
-
7/29/2019 cycleC
54/105
54
Tches de fouille de donnes
Classification
Estimation
Prdiction
Rgles dassociation
Segmentation
Algorithmes superviss et non superviss
-
7/29/2019 cycleC
55/105
55
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
Algorithmes prdictifs et descriptifs
-
7/29/2019 cycleC
56/105
56
Veut-onTrouver une fonction permettant de prdirela classe d'une donnes jamais vue
OuTrouver des descriptions rsumes et per-
tinentes expliquant les donnes
La limite entre les 2 est floue ! (mthodes
descriptives pour la prdiction)
Problmatiques associes
-
7/29/2019 cycleC
57/105
57
Problmatiques associes
donnes pas forcment trspropres : donnes bruites
donnes manquantes
Donnes aberrantes
doublons
donnes numriques, symboliques
pr-traitements
post-traitements
Quelques algorithmes
-
7/29/2019 cycleC
58/105
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
Mthode de Bayes naf
-
7/29/2019 cycleC
59/105
59
Mthode de Bayes naf
Comment classer un nouvel exemple enfonction dun ensemble dexemples pourlesquels on connat la classe ?
Soit un exemple d = (d1, ..., dn) et cclasses k = 1, ..., c
Classe(d) = argmax P(di|k) . P(k)k i
proportion dexemples di parmi ceux de la classe k
proportion dexemples de la classe k
Exemple : va t on jouer au
-
7/29/2019 cycleC
60/105
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
?Nonhaute
NonNonBasseEx7
OuiOuiBasseEx6
NonOuiBasseEx5
NonOuiHauteEx4
OuiOuiBasseEx3
NonNonBasseEx2
OuiOuiHauteEx1
TENNISVENTHUMIDITE
k plus proches voisins
-
7/29/2019 cycleC
61/105
61
p p
Raisonnement partir de cas
Utilisation des cas similaires pour prendreune dcision
Pas dtape dapprentissage (avantageset inconvnients)
Algorithme
-
7/29/2019 cycleC
62/105
62
Algorithme
Dcider du nombre de voisins utiliserk (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 prochesvoisins en une classe c
Choix de la distance
-
7/29/2019 cycleC
63/105
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) = [d1(x1,y1) 2 +...+ dn(xn,yn)2]
Choix de la classe
-
7/29/2019 cycleC
64/105
64
Choix de la classe
on dispose des k classes des k plusproches 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)
Exemple : va-t-on jouer autennis avec cette mthode ?
-
7/29/2019 cycleC
65/105
65
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
Exemple : va-t-on jouer autennis ?
-
7/29/2019 cycleC
66/105
66
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
?Nonhaute
NonNonBasseEx7
OuiOuiBasseEx6
NonOuiBasseEx5
NonOuiHauteEx4
OuiOuiBasseEx3
NonNonBasseEx2
OuiOuiHauteEx1
TENNISVENTHUMIDITE
Arbres de dcision
-
7/29/2019 cycleC
67/105
67
Reprsentation graphique dune procdure de dcisionReprsentation comprhensive rgles
tem-prature
gorge ir-rite malade
malade non malade
normale forte
oui non
feuille
nud
arc
Classes
Attributs
Tests surles attributs
Problmatiques associes
-
7/29/2019 cycleC
68/105
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)
Algorithme de construction
-
7/29/2019 cycleC
69/105
69
Algorithme de construction
Nud Courant racineRpter Si le nud courant est terminal
Alors ltiqueter Nud Courant Classe SinonSlectionner un attribut test
Crer le sous-arbre
Passer au nud suivant non explor
Jusqu obtention dun arbre
Critre darrt
-
7/29/2019 cycleC
70/105
70
Plusieurs tests possibles pour dcidersi le nud courant est terminal : il ny a plus assez dexemples
les exemples ne sontpas trop mlangs(une classe se dgage). seuil dimpuret.
On tiquette avec la classe majoritaire
Slection de lattribut test
-
7/29/2019 cycleC
71/105
71
Quel est lattribut dont la connaissancenous aide le plus sur la classe ?
Plusieurs critres possibles : test de
Gini, gain dinformation, entropie, ...ID3 : entropie de Shannon
Entropie de Shannon
-
7/29/2019 cycleC
72/105
72
Entropie de l'attribut AA a i valeurs possibles X
1, ..., X
i
Il y a k classes C1, ..., C
k
Hs(C|A) = - P(Xi) P(Ck|Xi). log((P(Ck|Xi)))i k
Exemple : va-t-on jouer autennis avec cette mthode ?
-
7/29/2019 cycleC
73/105
73
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 ?
Exemple : va-t-on jouer autennis ?
-
7/29/2019 cycleC
74/105
74
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
?Nonhaute
NonNonBasseEx7
OuiOuiBasseEx6
NonOuiBasseEx5
NonOuiHauteEx4
OuiOuiBasseEx3
NonNonBasseEx2
OuiOuiHauteEx1
TENNISVENTHUMIDITE
Attributs continus
-
7/29/2019 cycleC
75/105
75
ID3 ne les prend pas en charge
discrtisation par un expert
algorithme C4.5 :
test et calcul de lentropie avec toutes lescoupures possibles entre les valeurs suc-cessives
exemple sur les valeurs 3,4,8 on testera
< 3,5 vs. > 3,5 < 6 vs. > 6
Avantages et inconvnients
-
7/29/2019 cycleC
76/105
76
attention au sur-apprentissage lagageperformances moins bonnes si beaucoup declasses
algorithme non incrmental
on peut expliquer une dcision
permet la slection des attributs pertinents (featureselection)
classification rapide dun nouvel exemple (parcoursd'un chemin darbre)
Rseaux de neurones
-
7/29/2019 cycleC
77/105
77
Mthode de type bote noire
Nombreuses applications (notamment re-connaissance dcriture manuscrite)
Mthode coteuse en temps de calcul
Topologie connatre
Une mthode issue des modles biologiques
-
7/29/2019 cycleC
78/105
78
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 notrecorps, au travers d'environ 500 000 milliards de synapses
Neurone biologique
-
7/29/2019 cycleC
79/105
79
un neurone (biologique) est un noeud qui a
plusieurs entres et une sortie
Les entres proviennent dautres neuronesou organes sensoriels
Les entres sont pondres
Les poids peuvent tre positifs ou ngatifsLes entres sont sommes au niveau dunoeud pour produire une valeur dactiva-ation
Si lactivation est plus grande quun certainseuil, le neurone sactivef
Problmes linairement ounon linairement sparables
-
7/29/2019 cycleC
80/105
80
on distingue 2 types de problmespour 2 types de solution
x1 x2 OU XOR
0 0 0 0
0 1 1 1
1 0 1 1
1 1 1 0 00 11
11 11
OUOU
00 11
11 00
XORXOR
perceptronperceptron
multi-couches
Approche informatique :perceptron
-
7/29/2019 cycleC
81/105
81
ENTREES POIDS SORTIEFONCTION SEUILSOMMATION
PLUSIEURS
CLASSES
Perceptron multi-couches
-
7/29/2019 cycleC
82/105
82
COUCHE DENTREECOUCHE CACHEE
COUCHE DE SORTIE
Algorithme dapprentissagedes poids
-
7/29/2019 cycleC
83/105
83
Initialiser les poids de manire alatoireRpter Pour chaque exemple i
Si la sortie s nest pas gale la sortie attendue a
Alors poids wi wi + (a - s)xi
Jusqu ce que tous les exemples soientbien classs
Segmentation (Clustering)
-
7/29/2019 cycleC
84/105
84
But : diviser la population en groupes Minimiser la similarit intra-groupe Maximiser la similarit inter-groupes Exemple : notes
Algorithme des k-moyennes
-
7/29/2019 cycleC
85/105
85
1. Choisir le nombre de groupes crer k2. Choisir k centres initiaux c1, .., ck3. Pour chaque exemple, laffecter au groupe i
dont le centre est le plus proche
4. Si aucun exemple ne change de groupe5. Alors STOP6. Sinon
a) Calculer les nouveaux centres :Pour i = 1 k
ci est la moyenne des lments du groupe
b) Aller en 3)
Exemple : faire 2 groupesdtudiants
-
7/29/2019 cycleC
86/105
86
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
eeee
e1
e2
e3
e4
e5
Problmes
-
7/29/2019 cycleC
87/105
87
Ncessit de lexistence dune dis-tance
Choix de k
Influence du choix des centres initiauxsur le rsultat
Normalisation des attributs
Evaluation des mthodes
-
7/29/2019 cycleC
88/105
88
Apprentissage supervis : valuation sur unebase 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.
Validation croise
-
7/29/2019 cycleC
89/105
89
Dcoupage de la base d'exemples en nsous-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
Critres dvaluation
-
7/29/2019 cycleC
90/105
90
Taux de bon apprentissageParmi tous les exemples, quelle proportion est bienclasse ?
Prcision de la classe kParmi les exemples classs dans la classe k, quelle
proportion est effectivement de la classe k ?
Rappel de la classe kParmi les exemples de la classe k, quelle proportion se
retrouvent classs dans la classe k ?
Prcision contre RappelMatrice de confusion : table de contingence
Matrice de confusion
-
7/29/2019 cycleC
91/105
91
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 nombretotal de cas observs pays : 80/86 = 0.93Prcision de la classe Pay : nombre de cas observs et prdits pay divis par lenombre total de cas prdits pays : 80/100 = 0.8
Logiciels de fouille de donnes
-
7/29/2019 cycleC
92/105
92
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
LOGIQUE FLOUE ETFOUILLE DE DONNEES
-
7/29/2019 cycleC
93/105
93
Logique floue 1965
Contrle flou
Fouille de donnes floue (viter les coupures brutales) : Rseaux de neurones
Arbres de dcision
Clustering
...
Logique floue
-
7/29/2019 cycleC
94/105
94
Lotfi ZadehExtension du contexte boolen classique
Vrit partielle, entre compltement vrai et com-pltement faux
Une personne est-elle grande ?
Monde discret monde continuAppartenance granduelle
Thorie des sous-ensembles classique : apparten-ance ou non (0 ou 1)
Thorie des sous-ensembles flous : appartenancecomprise entre 0 et 1
Fonctions d'appartenance
-
7/29/2019 cycleC
95/105
95
Taille d'une personne
Partition floue des tailles possibles
Sous-ensemble flous : petit moyen grand
Pour chaque taille (en cm), on dfinit quel pointcette taille correspond petit, moyen, grand
Une personne peut tre considre dans plusieurssous-ensembles flous de la partition
Une personne est petite, moyenne, grande avec desdegrs de vrit
-
7/29/2019 cycleC
96/105
96
d appartenance
taille
0
1 moyenpetit grand
Donnes floues
Donnes imprcises
d appartenance
1
jeune
-
7/29/2019 cycleC
97/105
97
Gnralisation des donnes classiques
prcises (singleton) et certaines (confiance 1)
Donnes imprcises
il estjeune
Donnes incertaines
il a vraisemblablement 18 ans
degr de confiance 0.8
Donnes imprcises et incertaines
ge
0
0.2
18
0
1
18
1
0
1
Arbres de dcision flous : historique
-
7/29/2019 cycleC
98/105
98
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)
...
Partitionner la baseSur l'attribut A ayant m valeurs, on cre m sous-bases
Cas classique : les exemples sont facilement sparables
-
7/29/2019 cycleC
99/105
99
Cas classique : les exemples sont facilement sparables
selon qu'ils correspondent l'une ou l'autre branche del'arbre
Cas flou : recouvrements
Straggies possibles :
Rptition des exemples affects d'un degr d'appar-tenance
-coupe (Salammb)cration d'une partitionclassique
Dupliquer les exemples de l'intersection floue dans lesdeux 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)
Infrence dans l'arbre flou
Utli ti d d li
-
7/29/2019 cycleC
100/105
100
Utlisation du modus ponens gnralis
La nouvelle donne est injecte dans laracine 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 labranche value avec la valeur maximale
1
NOP
9 15
Exemple, donne test (NOP=11.0, DAM=0.6)
-
7/29/2019 cycleC
101/105
101
1
1
DAM
NOP
9 15
5 12
0.55 0.78 DAMNOP
NOP
0.65 0.35
0 1 01
0.2 0.80.7 0.3
0.2 0.65 0.35 0.3
Clustering flou
-
7/29/2019 cycleC
102/105
102
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 desappartenances)
Rseaux de neurones flous
-
7/29/2019 cycleC
103/105
103
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 decalcul des poids
ConclusionNcessit d'outils ddis aux bases de donnes dcisionnelles
-
7/29/2019 cycleC
104/105
104
Navigation OLAP / fouille de donnes / reporting / tableaux de bordil 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
Bibliographie
-
7/29/2019 cycleC
105/105
105
Ralph Kimball,Entrepts de Donnes, Vuibert,
2002.
Jiawei Han, Micheline Kamber, Data Mining:Concepts and Techniques, Morgan Kaufmann
Publishers, 2000.
http://www.oracle.com