remerciements fouille de données / data...
Post on 10-Sep-2018
221 Views
Preview:
TRANSCRIPT
Fouille de données / Data Mining
Julien VELCIN
Université Lumière Lyon 2
Master 2 parcours CEE
1 / 100
Remerciements
⌅ Julien JacquesPr. de Statistique (ICOM, Lyon 2)
⌅ Sabine LoudcherPr. d’Informatique (ICOM, Lyon 2)
⌅ Julien Ah-PineMCF d’Informatique (ICOM, Lyon 2)
2 / 100
La fouille de données : qu’est-ce que c’est ?
Première définitionEnsemble de méthodes destinées à extraire d’un ensemble de donnéescelles qui ont le plus de valeur.
Deuxième définitionEnsemble d’approches statistiques permettant d’extraire de l’informationde grands jeux de données dans une perspectives d’aide à la décision.
Ma définitionEnsemble d’approches permettant d’extraire de l’information utile degrands 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
Les étapes du data mining1
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
1P. Besse et al., Data Mining et Statistique, Journal de la Société Française deStatistique, 142[1], 2001.
4 / 100
Data mining et informatique décisionnelle
5 / 100
La fouille de données : quelques références
(conseillées par J. Jacques)
6 / 100
La fouille de données : quelques références
⌅ http://mediamining.univ-lyon2.fr/velcin/
⌅ http://eric.univ-lyon2.fr/⇠ricco/data-mining/
⌅ http://data.mining.free.fr
⌅ http://eric.univ-lyon2.fr/⇠jjacques/
⌅ http://larmarange.github.io/analyse-R/
7 / 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⌅ évaluer le risque d’un client (credit scoring)⌅ détection de fraudes bancaires⌅ analyse automatique de contenus textuels (text mining)⌅ reconnaissance de la parole⌅ recommandation automatique⌅ prévision de consommation d’électricité⌅ prévision de trafic routier⌅ tester l’efficacité d’un traitement médical⌅ etc.
8 / 100
D’où vient le data mining ?
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’histoire2
⌅ 1875 : régression linéaire de Francis Galton⌅ 1896 : formule du coefficient de corrélation de Karl Pearson⌅ 1900 : distribution du �2 de Karl Pearson⌅ 1936 : analyse discriminante de Fisher et Mahalanobis⌅ 1941 : analyse factorielle des correspondances de Guttman⌅ 1943 : réseaux de neurones de Mc Culloch et Pitts⌅ 1944 : régression logistique de Joseph Berkson⌅ 1958 : perceptron de Rosenblatt⌅ 1962 : analyse des correspondances de J.P. Benzécri⌅ 1964 : arbre de décision AID de J.P. Sonquist et J.A. Morgan⌅ 1965 : méthode des centres mobiles de E.W. Forgy⌅ 1967 : méthode des k-means de MacQueen⌅ 1972 : modèle linéaire généralisé de Nelder et Wedderburn
2Directement extrait des transparents de S. Tufféry: http://data.mining.free.fr10 / 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
Le data mining aujourd’hui
On parle plus volontiers de “data science” qui regroupe toutes lesactivités autour des données, au-delà de l’aspect analyse :
12 / 100
Le data mining aujourd’hui
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
La fouille de données : panorama des méthodes
fouille de données
méthodesprédictives
méthodesdescriptives
14 / 100
La fouille de données : panorama des méthodes
méthodesprédictives
classificationsupervisée
prédireY quali.
régressionprédire
Y quanti.
méthodesdescriptives
détectionsde liens
recherched’associations
analysefactorielleACP, AFC,
ACM
clustering
15 / 100
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 dimensionfaible
⌅ régressionprédire une variable quantitative
⌅ détections de liensextraire des motifs fréquents ou des règles d’association
16 / 100
La fouille de données : panorama des méthodes
Ce qui est abordé dans ce cours :⌅ 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 i17 / 100
Classification non supervisée vs supervisée
Classification non supervisée⌅ 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 unesignification 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 individusde classes inconnues
18 / 100
Apprentissage automatique inductif
Aristote“La connaissance vient du monde”
DéfinitionTrouver des règles générales (voire des concepts) à partir d’unensemble d’observations particulières
Autres types d’apprentissage⌅ apprentissage par cœur⌅ apprentissage par renforcement⌅ apprentissage par abduction
19 / 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 certainemaladie...
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
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
Plan
Classification non superviséeGénéralitésMéthode des centres mobiles (kmeans)Classification Ascendante HiérarchiqueModèles de mélangesApplication : les données Vélib
Classification superviséeGénéralitésMéthode des K plus proches voisinsArbre de classificationRégression logistiqueRéseaux de neurones artificiels
23 / 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 que1. d(Xi ,Xj) � 02. 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 ELorsque seulement 1. à 3. sont vérifiées, on parle de dissimilarité.
26 / 100
Distances et dissimilarités usuelles
Distances pour données quantitatives E = Rp
d2(Xi ,Xj) = (Xi � Xj)tM(Xi � Xj)
⌅ distance euclidienne (M = I) : d(Xi ,Xj) =�Pp
`=1(Xi` � Xj`)2�1/2
⌅ distance de Mahalanobis (M = V
�1 avec V la matrice de covariance)⌅ ...
Distances pour données binaires E = {0, 1}p
⌅ dissimilarité de Jaccard : d(Xi ,Xj) = 1 � aa+b+c où
⇤ a = #{`, 1 ` p : Xi` = Xj`}⇤ b = #{`, 1 ` p : Xi` = 1 et Xj` = 0}⇤ c = #{`, 1 ` p : Xi` = 0 et Xj` = 1}
⌅ ...27 / 100
Comparaison de partitions
On utilise souvent l’indice de Rand pour comparer deux partitionsZ1 = (Z11, . . . ,Z1n) et Z2 = (Z21, . . . ,Z2n) :
R =a + d
a + b + c + d=
a + d�2
n
� 2 [0, 1]
où, parmi les�2
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éesdans Z2
⌅ c : nombre de paires séparées dans Z1 mais dans une même classedans Z2
⌅ d : nombre de paires dans séparées dans Z1 et dans Z2
28 / 100
Exercice
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,�2
5
�= 10 et R = 0.4
29 / 100
Algorithme des kmeans kmeans{stats}
On se place dans E = Rp muni de la distance euclidienne.
Algorithm 1 kmeans1: init. : tirages au hasard de K centres µk parmi les n observations2: while partition non stable do
3: affecter chaque observation à la classe dont le centre est le plusproche
4: recalculer les centres (moyennes) des classes5: end while
31 / 100
Illustration de l’algorithme des kmeans
32 / 100
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 =nX
i=1
d2(Xi , µ) : inertie totale du nuage de point (µ est le centre global)
⇤ B(Z) =KX
k=1
nk d2(µk , µ) : inertie inter-classe (nk nb. obs. dans classe k )
⇤ W (Z) =KX
k=1
X
i=1,n:Zi=k
d2(Xi , µk ) : inertie intra-classe
⌅ 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))
33 / 100
Choix du nombre de classes
⌅ 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) :
1 2 3 4 5 6 7
24
68
10
K
iner
tie in
tra−c
lass
e
coude
34 / 100
Exercice
Réaliser une classification automatique en 2 classes à l’aide del’algorithme de kmeans sur les données suivantes :⌅ X1 = 0⌅ X2 = 2⌅ X3 = 6⌅ X4 = 11Avez-vous tous obtenus les mêmes partitions ?
Correction sous : kmeans(c(0,2,6,11),centers=c(2,6))
35 / 100
Algorithme de CAH hlcust{stats}
Soit D une distance entre classe (critère d’agrégation).
Algorithm 2 CAH1: init. : chaque singleton (observation) constitue une classe2: while plus d’une classe do
3: calculer les distances D entre chaque classe 2 à 24: regrouper les deux classes les plus proches5: end while
37 / 100
CAH : quel critère d’agrégation ?Soit A et B deux classes (ensembles d’individus). Soit d une distanceentre 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
X2A
X
Y2B
d(X,Y)#A#B
⌅ WardD(A,B) =
#A#B#A +#B
d2(µA, µB)
où µA et µB sont les centres de gravité des classes A et B38 / 100
CAH : quel critère d’agrégation ?
Propriétés des critères.⌅ Ward agglomère les deux classes minimisant l’inertie intra-classe⌅ Ward est sous-optimal par rapport à kmeans car on se restreint à
regrouper 2 classes parmi la partition courante⌅ les critères du saut minimum et maximum sont peu dépendants de
l’échelle numérique.
39 / 100
CAH : représentation graphiqueOn représente le résultat d’une CAH par un dendogramme dontl’ordonnée est la valeur du critère d’agrégation.
1
23
4
5
6
7
8
7 8 5 6 4 1 2 3
02
46
810
12
Cluster Dendrogram
hclust (*, "ward")
40 / 100
Exercice
⌅ Réaliser une CAH sur les données suivantes à l’aide des critères dusaut minimum et du saut maximum :⇤ X1 = 0⇤ X2 = 2⇤ X3 = 6⇤ X4 = 11
⌅ Représenter le dendogramme.⌅ Comparer les partitions en 2 classes avec celle obtenue par les
kmeans ?
41 / 100
Clustering par modèles de mélanges (MM)⌅ Idée : chaque classe est caractérisée par sa propre loi de probabilité
X|Z = k ⇠ f (x, ✓k ) = fk (x)
⇤ variables quantitatives : f (·, ✓k ) densité gaussienne, ✓k = (µk ,⌃k )⇤ variables qualitatives : f (·, ✓k ) proba. multinomiale, ✓k = (↵kjh)1jp,1hmj
⌅ loi marginale de X (densité mélange)
X ⇠KX
k=1
pk fk (x) = fX
(x).
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) =pk fk (x)fX
(x).
43 / 100
MM : estimation
Idée fondamentale⌅ maximum de vraisemblance pour ✓ = (✓k )1kK
⌅ déduire bZ grâce aux tk (xi) par maximum a posteriori (MAP) :
bZi = k si tk (xi) > tl(xi) 8l 6= k
Log-vraisemblance
l(✓, x1, . . . , xn) =nX
i=1
log fX
(xi) =nX
i=1
logKX
k=1
pk fk (xi)
On cherche alors b✓ = argmax✓ l(✓, x1, . . . , xn)
44 / 100
MM : estimation
Algorithm 3 Algorithme EM1: init. : choix aléatoire de ✓(0)
2: while |l(✓(m), x1, . . . , xn)� l(✓(m+1), x1, . . . , xn)| < ✏ do
3: étape E (estimation) : calculer
Q(✓, ✓(m)) = E✓(m) [l(✓,X1, . . . ,Xn,Z1, . . . ,Zn)|X1 = x1, . . . ,Xn = xn]
) revient à calculer btk (xi) =pk fk (xi )PK`=1 p`fk (xi )
4: étape M (maximisation) : calculer
✓(m+1) = argmax
✓Q(✓, ✓(m))
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 � 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 = �k Dk Ak Dtk
⇤ Ak = A : forme des classes identiques⇤ Dk = D : orientation des classes identiques⇤ �k = � : volume des classes identiques
46 / 100
MM : choix de modèle
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 = �2l(b✓, x1, . . . , xn) + (d + 1) ln(n),
où d est le nombre de paramètres du modèles(d = K � 1 + pK + pK (K � 1)/2 pour le modèle gaussien complet)
47 / 100
MM : liens avec l’algorithme des kmeans
L’algorithme de centres mobiles (kmeans) est équivalent à un modèlegaussien 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 btk (xi) calculés à l’étape E sont arrondis à 1
(pour la classe k maximisant btk (xi)) et à 0 pour les autres
48 / 100
MM : logiciels
Packages⌅ Mclust{mclust}
⌅ mixmodCluster{Rmixmod}
⌅ hddc{HDclassif} pour les données de grande dimension
49 / 100
Un exemple classique : les Iris de FisherR> plot(iris[,1:4],col=iris$Species)
Sepal.Length
2.0 2.5 3.0 3.5 4.0 0.5 1.0 1.5 2.0 2.5
4.5
5.5
6.5
7.5
2.0
3.0
4.0
Sepal.Width
Petal.Length
12
34
56
7
4.5 5.5 6.5 7.5
0.5
1.5
2.5
1 2 3 4 5 6 7
Petal.Width
50 / 100
Un exemple classique : les Iris de Fisher
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 2components:log.likelihood n df BIC ICL-215.726 150 26 -561.7285 -561.7289Clustering table:1 250 100
R> table(model$classification,iris$Species)setosa versicolor virginica
1 50 0 0
2 0 50 50
51 / 100
Un exemple classique : les Iris de FisherR> 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 3components:log.likelihood n df BIC ICL-186.0736 150 38 -562.5514 -566.4577Clustering table:1 2 350 45 55
R> table(model$classification,iris$Species)setosa versicolor virginica
1 50 0 02 0 45 0
3 0 5 5052 / 100
Application : les données Vélib
http://opendata.paris.fr
C. Bouveyron, E. Côme, J. Jacques. The discriminative functional mixture modelfor a comparative analysis of bike sharing systems . The Annals of AppliedStatistics, 2015, in press. <hal-01024186v3>
54 / 100
Des profils différents
55 / 100
Que l’on peut projeter
56 / 100
top related