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 )1jp,1hmj 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 )1k 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