Fouille de données / Data Mining

publicité
Remerciements
Fouille de données / Data Mining
⌅
Julien Jacques
Pr. de Statistique (ICOM, Lyon 2)
⌅
Sabine Loudcher
Pr. d’Informatique (ICOM, Lyon 2)
⌅
Julien Ah-Pine
MCF d’Informatique (ICOM, Lyon 2)
Julien VELCIN
Université Lumière Lyon 2
Master 2 parcours CEE
1 / 100
La fouille de données : qu’est-ce que c’est ?
2 / 100
Les étapes du data mining1
Première définition
Ensemble de méthodes destinées à extraire d’un ensemble de données
celles qui ont le plus de valeur.
Deuxième définition
Ensemble d’approches statistiques permettant d’extraire de l’information
de grands jeux de données dans une perspectives d’aide à la décision.
Ma définition
Ensemble d’approches permettant d’extraire de l’information utile de
grands jeux de données, utile pouvant être une information qui :
⌅
confirme un élément connu mais cette fois de manière rigoureuse,
systématique,
⌅
apprend quelque chose de nouveau qui enrichit notre perception des
données (et du problème sous-jacent),
⌅
peut être employée dans une perspective d’aide à la décision.
3 / 100
1. Nettoyage des données (erreurs, données manquantes, outliers)
2. Transformation éventuelle des données (normalisation, linéarisation...)
3. Explicitation de l’objectif de l’analyse (recherche de motifs, régression,
classification, clustering...)
4. Choix de la méthode et mise en oeuvre informatique (
5. Test (validation de la qualité des résultats)
6. Exploitation
1 P. Besse et al., Data Mining et Statistique, Journal de la Société Française de
Statistique,
142[1], 2001.
4 / 100
...)
Data mining et informatique décisionnelle
La fouille de données : quelques références
(conseillées par J. Jacques)
5 / 100
La fouille de données : quelques références
6 / 100
La fouille de données : à quoi cela sert ?
⌅
publicité ciblée sur internet
⌅
identification des prospects les plus susceptibles de devenir clients
⌅
reconnaissance faciale dans une image
⌅
http://mediamining.univ-lyon2.fr/velcin/
⌅
évaluer le risque d’un client (credit scoring)
⌅
http://eric.univ-lyon2.fr/⇠ricco/data-mining/
⌅
détection de fraudes bancaires
⌅
http://data.mining.free.fr
⌅
analyse automatique de contenus textuels (text mining)
⌅
http://eric.univ-lyon2.fr/⇠jjacques/
⌅
reconnaissance de la parole
⌅
http://larmarange.github.io/analyse-R/
⌅
recommandation automatique
⌅
prévision de consommation d’électricité
⌅
prévision de trafic routier
⌅
tester l’efficacité d’un traitement médical
⌅
etc.
7 / 100
8 / 100
D’où vient le data mining ?
Un peu d’histoire2
⌅
⌅
⌅
Le data mining se nourrit de multiples influences
⌅
⌅
⌅
Statistique (analyse des données)
⌅
⌅
Intelligence artificielle (apprentissage automatique)
⌅
⌅
Bases de données (on parle de KDD)
⌅
⌅
⌅
⌅
⌅
⌅
9 / 100
Un peu d’histoire (suite)
⌅
1975 : algorithmes génétiques de Holland
⌅
1975 : méthode de classement DISQUAL de Gilbert Saporta
⌅
1980 : arbre de décision CHAID de KASS
⌅
1983 : régression PLS de Herman et Svante Wold
⌅
1984 : arbre CART de Breiman, Friedman, Olshen, Stone
⌅
1986 : perceptron multicouches de Rumelhart et McClelland
⌅
1989 : réseaux de T. Kohonen (cartes auto-adaptatives)
⌅
vers 1990 : apparition du concept de data mining
⌅
1993 : arbre C4.5 de J. Ross Quinlan
⌅
1996 : bagging (Breiman) et boosting (Freund-Shapire)
⌅
1998 : support vector machines de Vladimir Vapnik
⌅
2000 : régression logistique PLS de Michel Tenenhaus
⌅
2001 : forêts aléatoires de L. Breiman
11 / 100
1875 :
1896 :
1900 :
1936 :
1941 :
1943 :
1944 :
1958 :
1962 :
1964 :
1965 :
1967 :
1972 :
régression linéaire de Francis Galton
formule du coefficient de corrélation de Karl Pearson
distribution du 2 de Karl Pearson
analyse discriminante de Fisher et Mahalanobis
analyse factorielle des correspondances de Guttman
réseaux de neurones de Mc Culloch et Pitts
régression logistique de Joseph Berkson
perceptron de Rosenblatt
analyse des correspondances de J.P. Benzécri
arbre de décision AID de J.P. Sonquist et J.A. Morgan
méthode des centres mobiles de E.W. Forgy
méthode des k-means de MacQueen
modèle linéaire généralisé de Nelder et Wedderburn
2 Directement
10 / 100
extrait des transparents de S. Tufféry: http://data.mining.free.fr
Le data mining aujourd’hui
On parle plus volontiers de “data science” qui regroupe toutes les
activités autour des données, au-delà de l’aspect analyse :
12 / 100
Le data mining aujourd’hui
La fouille de données : panorama des méthodes
Ce qui a changé la donne :
⌅
des capacités de stockage et de calculs en constante augmentation
⌅
constitution de gigantesques bases de données, en particulier au
sein des entreprises
⌅
l’accès à des logiciels de plus en plus performants pour traiter ces
données
⌅
des technologies innovantes, par ex. issues de l’IA, qui “sortent des
laboratoires” (machine learning)
13 / 100
fouille de données
méthodes
descriptives
14 / 100
La fouille de données : panorama des méthodes
clustering
méthodes
descriptives
analyse
factorielle
méthodes
prédictives
classification
supervisée
prédire
Y quali.
régression
ACP, AFC,
ACM
détections
de liens
prédire
Y quanti.
La fouille de données : panorama des méthodes
Ce qui n’est pas abordé dans ce cours :
⌅
analyse factorielle (ACP, AFC, ACM...)
projection et visualisation de données dans un espace de dimension
faible
⌅
régression
prédire une variable quantitative
⌅
détections de liens
extraire des motifs fréquents ou des règles d’association
recherche
d’associations
15 / 100
méthodes
prédictives
16 / 100
La fouille de données : panorama des méthodes
Classification non supervisée vs supervisée
Ce qui est abordé dans ce cours :
Classification non supervisée
⌅
⌅
clustering (classification automatique, classification non supervisée,
segmentation, typologie...) :
regrouper des individus qui se ressemblent en catégories homogènes
classification supervisée (discrimination, analyse discriminante,
scoring) :
classer des individus dans des classes définies a priori
Notations :
⌅
⌅
⌅
les individus (observations) sont décrits par un ensemble de p
variables aléatoires explicatives X = (X1 , . . . , Xp ) 2 E (E = Rp , ...)
Xi = (Xi1 , . . . , Xip ) sont les variables explicatives pour l’individu i
(1  i  n)
Zi 2 {1, . . . , K } est le numéro de la classe de l’individu i
17 / 100
Apprentissage automatique inductif
Aristote
“La connaissance vient du monde”
Définition
Trouver des règles générales (voire des concepts) à partir d’un
ensemble d’observations particulières
Autres types d’apprentissage
⌅
apprentissage par cœur
⌅
apprentissage par renforcement
⌅
apprentissage par abduction
19 / 100
⌅
Zi inconnue (aucun à priori)
⌅
objectif : à partir de l’observation de X1 , . . . , Xn , trouver Z1 , . . . , Zn
⌅
les classes sont ensuite interprétées dans le but de leur donner une
signification concrète
Classification supervisée
⌅
Zi connue (signification connue a priori)
⌅
objectif : à partir de l’observation de (X1 , Z1 ), . . . , (Xn , Zn ) construire
une règle de classement (classifieur) r :
r : X ! r (X ) = Z
⌅
utiliser cette règle de classement pour classer de nouveaux individus
de classes inconnues
18 / 100
Applications
Classification non supervisée
⌅
analyse exploratoire : donner une représentation simplifiée des
données pour mieux les comprendre
⌅
exemple : typologie clients en marketing (Gestion de la relation
clients / CRM - Customer Relationship Management)
Classification supervisée
⌅
analyse prédictive : prédire une variable (Z ) qualitative à partir de
variables explicatives (X)
⌅
exemples : prédire si un prospect va acheter le produit qu’on lui
propose, prédire la probabilité qu’un patient soit atteint d’une certaine
maladie...
20 / 100
Biais d’apprentissage
⌅
Choix réalisés afin de réduire l’espace des solutions possibles
(espace des hypothèses)
⌅
En apprentissage de concept : moyen de préférer une généralisation
à une autre
⌅
Guident le processus d’apprentissage
⌅
Absolue nécessité des biais dans le processus d’apprentissage (T.
Mitchell, 1980)
Exemple de biais :
⌅
⇤
⇤
⇤
⇤
biais de simplicité (ou Rasoir d’Occam),
biais inductif
biais de restriction
etc.
21 / 100
Plan
Classification non supervisée
Généralités
Méthode des centres mobiles (kmeans)
Classification Ascendante Hiérarchique
Modèles de mélanges
Application : les données Vélib
Classification supervisée
Généralités
Méthode des K plus proches voisins
Arbre de classification
Régression logistique
Réseaux de neurones artificiels
23 / 100
Les différentes méthodes abordées dans ce cours
Classification non supervisée
⌅
méthodes géométriques
⇤
⇤
⌅
centres mobiles (kmeans),
Classification Ascendante Hiérarchique (CAH)
méthode probabiliste
⇤
modèles de mélanges (algorithme EM)
Classification supervisée
⌅
k plus proche voisins
⌅
arbre de classification
⌅
régression logistique
⌅
réseaux de neurones
22 / 100
Notions de distances et dissimilarités
Soient Xi et Xj deux observations de E.
On appelle distance toute fonction d : E ⇥ E ! R+ telle que
1. d(Xi , Xj )
0
2. d(Xi , Xj ) = d(Xj , Xi )
3. d(Xi , Xj ) = 0 , Xj = Xi
4. d(Xi , Xj )  d(Xi , Xk ) + d(Xk , Xj ) pour tout Xk 2 E
Lorsque seulement 1. à 3. sont vérifiées, on parle de dissimilarité.
26 / 100
Distances et dissimilarités usuelles
Comparaison de partitions
Distances pour données quantitatives E = Rp
d 2 (Xi , Xj ) = (Xi
⌅
Xj )t M(Xi
⌅
distance de Mahalanobis (M = V
⌅
...
1
Xj )
Pp
distance euclidienne (M = I) : d(Xi , Xj ) =
`=1 (Xi`
dissimilarité de Jaccard : d(Xi , Xj ) = 1
⇤
⇤
⇤
⌅
...
Xj` )
a = #{`, 1  `  p : Xi` = Xj` }
b = #{`, 1  `  p : Xi` = 1 et Xj` = 0}
c = #{`, 1  `  p : Xi` = 0 et Xj` = 1}
a
a+b+c
R=
2 1/2
avec V la matrice de covariance)
Distances pour données binaires E = {0, 1}
⌅
On utilise souvent l’indice de Rand pour comparer deux partitions
Z1 = (Z11 , . . . , Z1n ) et Z2 = (Z21 , . . . , Z2n ) :
p
où
27 / 100
où, parmi les
2
n
a+d
a+d
= 2 2 [0, 1]
a+b+c+d
n
paires d’individus possibles :
⌅
a : nombre de paires dans une même classe dans Z1 et dans Z2
⌅
b : nombre de paires dans une même classe dans Z1 mais séparées
dans Z2
⌅
c : nombre de paires séparées dans Z1 mais dans une même classe
dans Z2
⌅
d : nombre de paires dans séparées dans Z1 et dans Z2
28 / 100
Exercice
Algorithme des kmeans
kmeans{stats}
On se place dans E = Rp muni de la distance euclidienne.
Deux méthodes de clustering ont conduit aux 2 partitions suivantes :
⌅
⌅
Z1 = {1, 1, 2, 2, 2}
Z2 = {1, 2, 2, 1, 2}
Calculer l’indice de Rand de ces deux partitions.
Correction : a = 1, d = 3,
29 / 100
2
5
= 10 et R = 0.4
Algorithm 1 kmeans
1: init. : tirages au hasard de K centres µk parmi les n observations
2: while partition non stable do
3:
affecter chaque observation à la classe dont le centre est le plus
proche
4:
recalculer les centres (moyennes) des classes
5: end while
31 / 100
Illustration de l’algorithme des kmeans
Algorithme des kmeans
kmeans{stats}
Propriétés
⌅
l’algorithme des kmeans minimise l’inertie intra-classe W (Z) :
T = B(Z) + W (Z)
⇤
T =
n
X
i=1
⇤
⇤
B(Z) =
d 2 (Xi , µ) : inertie totale du nuage de point (µ est le centre global)
K
X
nk d 2 (µk , µ) : inertie inter-classe (nk nb. obs. dans classe k )
k =1
K
X
W (Z) =
X
d 2 (Xi , µk ) : inertie intra-classe
k =1 i=1,n:Zi =k
⌅
l’algorithme des kmeans est convergent (optimum local)
⌅
la solution dépend de l’initialisation () en pratique on réalise plusieurs
init. et on conserve celle minimisant W (Z))
32 / 100
33 / 100
Choix du nombre de classes
Exercice
on sait que l’inertie intra-classe W (Z) diminue lorsque K augmente
⌅
choix de K : recherche d’un coude dans la décroissance de W (Z) :
6
Réaliser une classification automatique en 2 classes à l’aide de
l’algorithme de kmeans sur les données suivantes :
⌅
X1 = 0
⌅
X2 = 2
⌅
X3 = 6
⌅
X4 = 11
Avez-vous tous obtenus les mêmes partitions ?
coude
4
inertie intra−classe
8
10
⌅
2
Correction sous
1
2
3
4
5
6
7
K
34 / 100
35 / 100
: kmeans(c(0,2,6,11),centers=c(2,6))
Algorithme de CAH
hlcust{stats}
Soit D une distance entre classe (critère d’agrégation).
Algorithm 2 CAH
1: init. : chaque singleton (observation) constitue une classe
2: while plus d’une classe do
3:
calculer les distances D entre chaque classe 2 à 2
4:
regrouper les deux classes les plus proches
5: end while
CAH : quel critère d’agrégation ?
Soit A et B deux classes (ensembles d’individus). Soit d une distance
entre individus.
⌅ single linkage (saut minimum)
D(A, B) = min{d(X, Y), X 2 A, Y 2 B}
⌅
complete linkage (saut maximum)
D(A, B) = max{d(X, Y), X 2 A, Y 2 B}
⌅
distance moyenne
D(A, B) =
X X d(X, Y)
#A#B
X2A Y2B
⌅
Ward
D(A, B) =
37 / 100
CAH : quel critère d’agrégation ?
#A#B 2
d (µA , µB )
#A + #B
où µA et µB sont les centres de gravité des classes A et B
38 / 100
CAH : représentation graphique
On représente le résultat d’une CAH par un dendogramme dont
l’ordonnée est la valeur du critère d’agrégation.
Cluster Dendrogram
Propriétés des critères.
⌅
les critères du saut minimum et maximum sont peu dépendants de
l’échelle numérique.
12
10
Ward est sous-optimal par rapport à kmeans car on se restreint à
regrouper 2 classes parmi la partition courante
2
3
8
Ward agglomère les deux classes minimisant l’inertie intra-classe
⌅
6
⌅
4
1
2
4
6
39 / 100
40 / 100
hclust (*, "ward")
3
2
1
4
6
5
8
7
5
0
8
7
Exercice
Clustering par modèles de mélanges (MM)
⌅
⌅
⇤
⇤
⇤
⌅
⌅
X|Z = k ⇠ f (x, ✓k ) = fk (x)
Réaliser une CAH sur les données suivantes à l’aide des critères du
saut minimum et du saut maximum :
⇤
X1
X2
X3
X4
=0
=2
=6
= 11
Idée : chaque classe est caractérisée par sa propre loi de probabilité
⇤
⇤
⌅
variables quantitatives : f (·, ✓k ) densité gaussienne, ✓k = (µk , ⌃k )
variables qualitatives : f (·, ✓k ) proba. multinomiale, ✓k = (↵kjh )1jp,1hmj
loi marginale de X (densité mélange)
X⇠
Représenter le dendogramme.
Comparer les partitions en 2 classes avec celle obtenue par les
kmeans ?
⌅
K
X
pk fk (x) = fX (x).
k =1
où pk est la proportion de la classe k
probabilité conditionnelle que x provienne de la classe k (via Bayes) :
tk (x) = P(Z = k |X = x) =
41 / 100
43 / 100
MM : estimation
MM : estimation
Idée fondamentale
Algorithm 3 Algorithme EM
⌅
⌅
maximum de vraisemblance pour ✓ = (✓k )1k K
b grâce aux tk (xi ) par maximum a posteriori (MAP) :
déduire Z
Log-vraisemblance
bi = k si tk (xi ) > tl (xi )
Z
l(✓, x1 , . . . , xn ) =
1:
2:
3:
init. : choix aléatoire de ✓(0)
while |l(✓(m) , x1 , . . . , xn ) l(✓(m+1) , x1 , . . . , xn )| < ✏ do
étape E (estimation) : calculer
8l 6= k
Q(✓, ✓(m) ) = E✓(m) [l(✓, X1 , . . . , Xn , Z1 , . . . , Zn )|X1 = x1 , . . . , Xn = xn ]
) revient à calculer btk (xi ) =
log fX (xi ) =
n
X
i=1
On cherche alors ✓b = argmax✓ l(✓, x1 , . . . , xn )
log
K
X
p f (x )
PK k k i
`=1 p` fk (xi )
étape M (maximisation) : calculer
4:
n
X
i=1
44 / 100
pk fk (x)
.
fX (x)
✓(m+1) = argmax Q(✓, ✓(m) )
pk fk (xi )
✓
k =1
5:
end while
Rq : EM converge vers un maxi. local de l ! plusieurs init.
45 / 100
MM : différents modèles gaussiens
⌅
Le nombre de paramètres du modèle peut être important :
K
⌅
MM : choix de modèle
1 + pK + Kp(p + 1)/2
Des modèles parcimonieux ont été proposés en imposant des
hypothèses sur la décomposition spectrale des matrices de variances
⇤
⇤
⇤
⌃k =
t
k Dk Ak Dk
Ak = A : forme des classes identiques
Dk = D : orientation des classes identiques
: volume des classes identiques
k =
Des critères de vraisemblance pénalisée peuvent être utilisés pour
⌅
choisir le modèle le plus adapté,
⌅
choisir le nombre de clusters K
Critère BIC (à minimiser) :
BIC =
b x1 , . . . , xn ) + (d + 1) ln(n),
2l(✓,
où d est le nombre de paramètres du modèles
(d = K
46 / 100
L’algorithme de centres mobiles (kmeans) est équivalent à un modèle
gaussien très particulier :
les classes sont supposées sphériques et de même taille
⌃ k = Id
et les paramètres sont estimés avec une variante de l’algorithme EM :
⌅ algorithme CEM : les b
tk (xi ) calculés à l’étape E sont arrondis à 1
(pour la classe k maximisant btk (xi )) et à 0 pour les autres
48 / 100
1)/2 pour le modèle gaussien complet)
47 / 100
MM : liens avec l’algorithme des kmeans
⌅
1 + pK + pK (K
MM : logiciels
Packages
⌅
Mclust{mclust}
⌅
mixmodCluster{Rmixmod}
⌅
hddc{HDclassif} pour les données de grande dimension
49 / 100
Un exemple classique : les Iris de Fisher
Un exemple classique : les Iris de Fisher
R> plot(iris[,1:4],col=iris$Species)
2.5
3.0
3.5
4.0
0.5
1.0
1.5
2.0
2.5
6.5
7.5
2.0
4.0
4.5
5.5
Sepal.Length
5
6
7
2.0
3.0
Sepal.Width
1.5
2.5
1
2
3
4
Petal.Length
R> model=Mclust(iris[,1:4],G=1:5)
R> summary(model)
----------------------------------Gaussian finite mixture model fitted by EM algorithm
----------------------------------Mclust VEV (ellipsoidal, equal shape) model with 2
components:
log.likelihood n df BIC ICL
-215.726 150 26 -561.7285 -561.7289
Clustering table:
1 2
50 100
0.5
Petal.Width
4.5
50 / 100
5.5
6.5
7.5
1
2
3
4
5
6
7
Un exemple classique : les Iris de Fisher
R> table(model$classification,iris$Species)
setosa versicolor virginica
1
50
0
0
2
0
50
50
51 / 100
Application : les données Vélib
R> model=Mclust(iris[,1:4],G=3)
R> summary(model)
----------------------------------Gaussian finite mixture model fitted by EM algorithm
----------------------------------Mclust VEV (ellipsoidal, equal shape) model with 3
components:
log.likelihood n df BIC ICL
-186.0736 150 38 -562.5514 -566.4577
Clustering table:
1 2 3
50 45 55
R> table(model$classification,iris$Species)
setosa versicolor virginica
1
50
0
0
2
0
45
0
3
0
5
50
52 / 100
http://opendata.paris.fr
C. Bouveyron, E. Côme, J. Jacques. The discriminative functional mixture model
for a comparative analysis of bike sharing systems . The Annals of Applied
Statistics, 2015, in press. <hal-01024186v3>
54 / 100
Des profils différents
55 / 100
Que l’on peut projeter
56 / 100
Téléchargement