P. 1
cycleC

cycleC

|Views: 6|Likes:
Published by Zaynab Fadlallah

More info:

Published by: Zaynab Fadlallah on Mar 16, 2013
Copyright:Attribution Non-commercial

Availability:

Read on Scribd mobile: iPhone, iPad and Android.
download as PDF, TXT or read online from Scribd
See more
See less

08/07/2014

pdf

text

original

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 données transactionnelles

Bases de données décisionnelles

Entrepôts de données et OLAP

Fouille de données

Logique floue et fouille de données

Conclusion
3
Bases de données
transactionnelles

Définition et Historique

Objectifs

limites
4
OLTP (On-Line Transactional
Processing)

Bases de données de production

Requêtes

Simples (accès à une partie de la base)

Fréquentes

Nombreux opérateurs
5
Modèles relationnels

Codd, années 70

Besoins de

Cohérence

Non redondance (normalisation 3NF, BCNF)

Fraîcheur (mises à jour fréquentes)

Gestion des accès concurrents (transactions
concurrentes)
6
Exemples

Gestion de stock (achats / ventes)

Gestion du personnel

Bibliothèque

Service facturation

...
7
Limites

Limites liées aux objectifs des bases
transactionnelles :

Incapacité à fournir des services décisionnels
(coût élevé du calcul des jointures)

Requêtes complexes impossibles

Navigation dans les données dans un but
analytique impossible

Connaissance du SQL indispensable à la
manipulation des données
8
Bases de données
décisionnelles

Historique

Objectifs et applications

Modélisation multidimensionnelle
9
Besoin de systèmes d'analyse

Années 1990

Codd (le même !) - Arbor Software

Croissance des volumes de données
traités

Impossibilité aux décideurs de les traiter sans
outils informatiques

Besoins de plus en plus complexes
10
Objectifs

Fournir aux décideurs des outils d'analyse
de leurs données

Reporting

Navigation

Extraction de connaissances

...
11
Applications

Analyse des résultats

Suivi de clientèle (CRM – Customer
Relationship Management)

Définition de profils clients

Détection des mauvais fraudes

Churning

Anticipation

...
12
Requêtes décisionnelles

Complexes

Rares

très gros volumes de données

Décideurs (petit groupe)

Vision des données à un niveau agrégé
13
Vision multidimensionnelle

Analyse de faits en fonction de dimensions

Analyse des ventes selon la période, le
lieu, le type de produit

Gestion de gros volumes de données

Redondance ?
14

Données historisées

Matérialisées

Volumineuses

Sources hétérogènes

Utilisation décisionnelle
Entrepôts de données
15

On-Line Analytical Processing

Codd 1993
catégorie d'applications et de technologies permettant de
collecter, stocker, traiter et restituer des données multidi-
mensionnelles, à des fins d'analyse.

Exemples de requêtes OLAP

Requêtes complexes
Quel est le total des ventes de chaussures ?
Quel est le type des meilleures ventes sur une période donnée, pour
une ville précise et un groupe d’âge ?

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

• Requêtes complexes
• Optique décisionnelle
• Vision ensembliste (tendances ...)
• Destiné aux analystes et décideurs
(peu nombreux)

• Requêtes simples
• Production et Mise à jour des données
• Vision au niveau individuel
• Destiné aux agents opérationnels (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
février
mars
Boston
Chicago
New York
85000
18
Dimensions
Organisation des informations selon des
dimensions plates
et des dimensions hiérarchisées
hiérarchies simples (arborescentes)
hiérarchies complexes
Exemple :
SEMAINE MOIS
JOUR
TRIMESTRE
19
Fonctionnement général
Magasins
de données
(multidimensionnels)
Systèmes de
fouille de don-
nées
Règles
Assoc.
Sources de données
hétérogènes
Entrepôt
de données
Données externes
Méta
base
ETL
Analyse OLAP
Reporting
C
O
N
N
A
I
S
S
A
N
C
E
20
ETL – 80% du travail !

E-xtract
• Accès aux différentes sources

T-ransform
• Nettoyage
• gestion des inconsistances des données sources
• formats de données
• détection des valeurs non valides

L-oad
• Chargement dans l'entrepôt
21
• Tables de faits : entité centrale
– Objet de l'analyse, taille très importante
• Tables de dimensions : entités périphériques
– Dimensions de l'analyse, taille peu importante
• Table de faits normalisée (BCNF)
• N-uplets de la tables de faits :
– Clés étrangères formant une clé primaire
– Valeurs associées à chaque clé primaire (mesures)
• Associations de type (0,n) – (1,1) connectant les
différentes dimensions aux faits
Conception de l'entrepôt
22
Normalisation des tables
• Etoile : tables dimensions non normalisées
• Flocon : tables de dimensions normalisées
– Réduction de la redondance
– Maintenance simplifiée
– MAIS navigation coûteuse
schéma en étoile
schéma 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 données

Partie de l'entrepôt

Dédiés à une analyse particulière

Modélisation multidimensionnelle

Fouille de données / reporting / navigation
OLAP
26
Problématiques associées

Calcul de l'hypercube (cube) de données

Stockage des données

Mise à jour des données

Types de faits

Additif

Semi-additif

Non additif
27
Calcul de l'hypercube

Quel cube construire ?

Comment le construire ?

Requêtes de type group by
SELECT mois, produit, ville, count(*)
FROM Ventes
GROUP BY mois, produit, ville

Ajout des agrégats (oracle)
GROUP BY CUBE
GROUP BY ROLLUP
GROUP BY GROUPING SETS
28
Stockage du cube

ROLAP (Relational OLAP) : les données sont stock-
ées dans une base de données relationnelle. Le cube
n'est pas matérialisé du tout sauf au moment de la
phase de requête

MOLAP (Multidimensional OLAP) : tout le cube est
matérialisé physiquement

HOLAP (Hybrid OLAP) : seule une partie du cube est
matérialisée sous forme multidimensionnelle. Les
autres données sont laissées dans la base relation-
nelle et extraites de manière dynamique au moment
des requêtes
Les cubes sont très clairsemés (sparsity)
29
Mise à jour des données

Incrémentale

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
Opérations OLAP

Visualisation :

Rotation

Inversion des valeurs de dimensions (switch)

Modification des données :

Sélection sur les cellules (slice)

Sélection sur les tranches (dice)

Généralisation (roll-up)

Spécialisation (drill-down)
32
Rotation
33
Inversion
34
Sélection sur les cellules
DICE
Critère de sélection : valeurs inférieures à 15
35
Sélection sur les tranches
SLICE
36
Généralisation/Spécialisation
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)

Requêtes de partitionnement

Fonctions d'analyse

Outils ETL

Outils d'analyse
39
MOLAP – ROLAP - HOLAP
40
Requêtes 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
Requêtes 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
Requêtes 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
Requêtes 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
Requêtes 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 matérialisées : création
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 matérialisées : 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 matérialisées :
rafraîchissement
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 données
Qu’est-ce que la fouille de données ?
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
données
I.H.M.
53
exemples d’application
diagnostic médical
profils de clients, mailing, accord de prêts
bancaires, ...
reconnaissance de caractères manuscrits
finance, prévision d’évolutions de marchés
Customer Relationship Management (CRM) : trouver,
gagner et garder ses clients !

churning,

détection de fraudes,

détection de mauvais payeurs, …
54
Tâches de fouille de données
Classification
Estimation
Prédiction
Règles d’association
Segmentation
55
Algorithmes supervisés et non supervisés
Apprentissage supervisé :

On dispose d'un fichier décrivant des données 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-
nées sans classes connues a priori

On cherche à diviser ces données en catégories
56
Algorithmes prédictifs et descriptifs
Veut-on
Trouver une fonction permettant de prédire
la classe d'une données jamais vue
Ou
Trouver des descriptions résumées et per-
tinentes expliquant les données
La limite entre les 2 est floue ! (méthodes
descriptives pour la prédiction)
57
Problématiques associées
données pas forcément très propres :

données bruitées

données manquantes

Données aberrantes

doublons
données numériques, symboliques
pré-traitements
post-traitements
58
Quelques algorithmes

Intelligence artificielle

Plusieurs algorithmes :

Segmentation (clustering)

Naive bayes

K plus proches voisins

Apprentissage par renforcement

Réseaux de neurones

Arbres de décision

...

Règles d'association et motifs séquentiels
59
Méthode de Bayes naïf

Comment classer un nouvel exemple en
fonction d’un ensemble d’exemples pour
lesquels on connaît 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 d’exemples di parmi ceux de la classe k
proportion d’exemples de la classe k
60
Exemple : va-t-on jouer au
tennis ?
Va-t-on jouer s’il y a du soleil, beauc-
oup d’humidité 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 décision

Pas d’étape d’apprentissage (avantages
et inconvénients)
62
Algorithme
Décider du nombre de voisins à utiliser
k (souvent k = nbre d’attributs + 1)
Pour un enregistrement sur lequel il
faut décider :

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 pondérée
Le résultat change en fonction de tous
ces choix (distance, combinaison, cal-
cul de la classe)
65
Exemple : va-t-on jouer au
tennis avec cette méthode ?
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 s’il y a du soleil, beauc-
oup d’humidité 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 décision

Représentation graphique d’une procédure de décision
Représentation compréhensive ¬ règles
tem-
pérature
gorge ir-
ritée
malade
malade non malade
normale
forte
oui non
feuille
nœud
arc
Classes
Attributs
Tests sur
les attributs
68
Problématiques associées
Choix des attributs tests (divisions success-
ives de la base d’apprentissage)
Critère d’arrêt
But : construire un arbre le plus petit possible
Heuristique. Algorithme glouton.
Plusieurs algorithmes (ID3, C4.5)
69
Algorithme de construction
Nœud Courant ÷ racine
Répéter

Si le nœud courant est terminal

Alors l’étiqueter Nœud Courant ÷ Classe

Sinon
 Sélectionner un attribut test
 Créer le sous-arbre

Passer au nœud suivant non exploré
Jusqu’à obtention d’un arbre
70
Critère d’arrêt
Plusieurs tests possibles pour décider
si le nœud courant est terminal :

il n’y a plus assez d’exemples

les exemples ne sont pas trop mélangés
(une classe se dégage). seuil d’impureté.
On étiquette avec la classe majoritaire
71
Sélection de l’attribut test
Quel est l’attribut dont la connaissance
nous aide le plus sur la classe ?
Plusieurs critères possibles : test de
Gini, gain d’information, 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 méthode ?
Construction de l’arbre
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 d’exemple
Nœuds terminaux ?
74
Exemple : va-t-on jouer au
tennis ?
Va-t-on jouer s’il y a du soleil, beauc-
oup d’humidité 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
discrétisation par un expert
algorithme C4.5 :

test et calcul de l’entropie 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 inconvénients
attention au sur-apprentissage ¬ élagage
performances moins bonnes si beaucoup de
classes
algorithme non incrémental
on peut expliquer une décision
permet la sélection des attributs pertinents (feature
selection)
classification rapide d’un nouvel exemple (parcours
d'un chemin d’arbre)
77
Réseaux de neurones

Méthode de type boîte noire

Nombreuses applications (notamment re-
connaissance d’écriture manuscrite)

Méthode coûteuse en temps de calcul

Topologie à connaître
78
Une méthode issue des modèles 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'intérieur 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 entrées et une sortie
Les entrées proviennent d’autres neurones
ou organes sensoriels
Les entrées sont pondérées
Les poids peuvent être positifs ou négatifs
Les entrées sont sommées au niveau du
noeud pour produire une valeur d’activa-
ation
Si l’activation est plus grande qu’un certain
seuil, le neurone s’active
f
E
80
Problèmes linéairement ou
non linéairement séparables
on distingue 2 types de problèmes
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 D’ENTREE
COUCHE CACHEE
COUCHE DE SORTIE
83
Algorithme d’apprentissage
des poids
Initialiser les poids de manière aléatoire
Répéter

Pour chaque exemple i
 Si la sortie s n’est pas égale à la sortie attendue a

Alors poids w
i
÷ w
i
+ (a - s)x
i
Jusqu’à ce que tous les exemples soient
bien classés
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 à créer k
2. Choisir k centres initiaux c
1
, .., c
k
3. Pour chaque exemple, l’affecter 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 éléments du groupe
b) Aller en 3)
86
Exemple : faire 2 groupes
d’étudiants
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 :
• c’1 = ((14+10)/2,(14+11)/2) = (12,12.5)
• c’2 = ((12+16+14)/3),(17+20+16)/3)=(14,17.6)
• calcul de d(e1,c’1) d(e1,c’2) …
• résultat 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
Problèmes
Nécessité de l’existence d’une dis-
tance
Choix de k
Influence du choix des centres initiaux
sur le résultat
Normalisation des attributs
88
Evaluation des méthodes

Apprentissage supervisé : évaluation sur une
base d’exemples test

Méthodes de séparation entre les bases
d’apprentissage et de test.

on dispose de deux bases séparées

on coupe la base en deux

validation croisée. Leave One Out.
89
Validation croisée

Découpage 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 résultats

n = 10 fonctionne bien

Leave one out
90
Critères d’évaluation
Taux de bon apprentissage
Parmi tous les exemples, quelle proportion est bien
classée ?
Précision de la classe k
Parmi les exemples classés 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 classés dans la classe k ?
Précision contre Rappel
Matrice de confusion : table de contingence
91
Matrice de confusion
Prédit 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 modèle (taux d’apprentissage) : 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 prédits et observés « payé » divisé par le nombre
total de cas observés « payés » : 80/86 = 0.93
• Précision de la classe Payé : nombre de cas observés et prédits « payé » divisé par le
nombre total de cas prédits « payés » : 80/100 = 0.8
92
Logiciels de fouille de données
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
Contrôle flou
Fouille de données floue (éviter les coupures brutales) :

Réseaux de neurones

Arbres de décision

Clustering

...
94
Logique floue
Lotfi Zadeh
Extension du contexte booléen classique
Vérité partielle, entre complètement vrai et com-
plètement faux
Une personne est-elle grande ?
Monde discret ÷ monde continu
Appartenance granduelle
Théorie des sous-ensembles classique : apparten-
ance ou non (0 ou 1)
Théorie 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 définit à quel point
cette taille correspond à petit, moyen, grand
Une personne peut être considérée dans plusieurs
sous-ensembles flous de la partition
Une personne est petite, moyenne, grande avec des
degrés de vérité
96
d° appartenance
taille
0
1
µ
moyen µ
petit
µ
grand
97
Données floues
Généralisation des données classiques
précises (singleton) et certaines (confiance 1)
Données imprécises
« il est jeune »
Données incertaines
« il a vraisemblablement 18 ans »
degré de confiance 0.8
Données imprécises et incertaines
d° appartenance
âge
0
1
µ
jeune
0.2
18
0
1
18
1
0
1
98
Arbres de décision flous : historique

Chang et Pavlidis (1977), Adamo (1980) : util-
isation floue d'arbres de décision classiques
(respect des tests à chaque nœud de l'arbre)

Bouchon (1981) : questionnaires flous
(étiquettes floues sur les tests)

Nombreux développements après ID3 (Quinlan
– 1984)

Janikow (1984)

Ramdani (1992)

Marsala (1998)

...
99
Partitionner la base
Sur l'attribut A ayant m valeurs, on crée m sous-bases
Cas classique : les exemples sont facilement séparables
selon qu'ils correspondent à l'une ou l'autre branche de
l'arbre
Cas flou : recouvrements
Stragégies possibles :

Répétition des exemples affectés d'un degré d'appar-
tenance

o-coupe (Salammbô) → création d'une partition
classique

Dupliquer les exemples de l'intersection floue dans les
deux sous-bases avec un degré 1

Création d'une branche spécifique à l'intersection (con-
struction d'un sous-arbre sur ce sous-ensemble d'ex-
emples)
100
Inférence dans l'arbre flou

Utlisation du modus ponens généralisé

La nouvelle donnée est injectée dans la
racine et traverse l'arbre :

Utilisation de l'algorithme min-max :

Sur chaque branche on considère le minimum
des évaluations par les tests

On considère la classe correspondant à la
branche évaluée avec la valeur maximale
101
1

1

1
DAM
NOP

NOP
9 15
5 12
0.55
0.7
8

Exemple, donnée 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 donnée peut appartenir à plusieurs
catégories

Degré d'appartenance entre 0 et 1

Degré de « flou » (recouvrement) défini
dans l'algorithme (fonction de calcul des
appartenances)
103
Réseaux de neurones flous

Seuils de transition moins brutaux

Calcul de systèmes de règles floues Si – Alors

Représentation du système de règles par un réseau

Détermination des paramètres par les algorithmes de
calcul des poids
104
Conclusion
Nécessité d'outils dédiés aux bases de données décisionnelles
Navigation OLAP / fouille de données / reporting / tableaux de bord
il existe de nombreuses (autres) méthodes
et pas de meilleure
méthode à choisir selon
les données (continues ? manquantes ? volumineuses ? denses ?
...)
la tâche
le temps de calcul dont on dispose
règle du rasoir d’Ockham :
« pluralitas non est ponenda sine neccessitate »
« Les choses essentielles ne doivent pas être multipliées sans nécessité »
autres types de données
105
Bibliographie

Ralph Kimball, Entrepôts de Données, Vuibert,
2002.

Jiawei Han, Micheline Kamber, Data Mining:
Concepts and Techniques, Morgan Kaufmann
Publishers, 2000.

http://www.oracle.com

You're Reading a Free Preview

Download
scribd
/*********** DO NOT ALTER ANYTHING BELOW THIS LINE ! ************/ var s_code=s.t();if(s_code)document.write(s_code)//-->