Vous êtes sur la page 1sur 35

Analyse et Fouille de Données

Méthodes descriptives:
Clustering
Dr. Mouna Chebbah

2021-2022
Introduction
Introduction
Apprentissage Automatique
!Données: Une base de données contenant T tuples (objets) et N attributs
(caractéristiques) D = 𝑥𝑖𝑗, 𝑖 = 1 … 𝑇 , 𝑗 = {1 … 𝑁} :
!𝑥𝑖𝑗, 𝑗 ≠N sont les données descriptives des tuples. xij est la valeur de l’attribut i pour
un tuple j.
!𝑥𝑖N est la catégorie du tuple i.
!La catégorie 𝑥𝑖N est aussi appelé classe ou bien étiquette ou bien label du tuple xi.
!Exemple:
Apprentissage Automatique
!Les catégories 𝑥N ne sont pas toujours connues.
! Deux grandes familles de jeux de données peuvent être utilisés :
! les données étiquetées : chaque observation xij est fournie avec une étiquette xiN ;
! les données non-étiquetées : comme le nom l’indique, aucune étiquette n’est fournie.
!D’où les 3 famille d’algorithmes d’apprentissage automatique:
1. Non supervisé : nous avons un ensemble d'objets sans aucun label associé.
Objectif: il faut apprendre un modèle capable d'extraire les régularités présentes au sein des objets
pour mieux visualiser ou appréhender la structure de l'ensemble des données.
2. Supervisé : nous avons un ensemble d'objets et un label associé à chaque objet.
Objectif: apprendre un modèle capable de prédire la bonne valeur cible d’un nouvel objet.
3. Par renforcement : nous avons un ensemble de séquences de décisions (politiques ou
stratégiques) dans un environnement dynamique, et pour chaque action de chaque séquence une
valeur de récompense (la valeur de récompense de la séquence est alors la somme des valeurs des
récompenses des actions qu'elle met en œuvre).
Objectif: apprendre un modèle capable de prédire la meilleure décision a prendre étant donne un
état de l'environnement
Classification non-supervisée
Objectif:
!Former des groupes homogènes à l’intérieur d'une
population
!Etant donné:
!un ensemble de points (représentant les observations),
chacun ayant un ensemble d'attributs,
!une mesure de similarité définie sur eux,
!Objectif: trouver des groupes (classes, segments, clusters )
tels que :
! Les points à l’intérieur d'un même groupe sont très similaires
entre eux.
! Les points appartenant à des groupes différents sont très
dissimilaires.
! Le choix de la mesure de similarité est important.
Domaines d’application
• Text mining : textes proches, dossiers automatiques.
• Web mining : pages web proches
• BioInformatique : gênes ressemblants
• Marketing : segmentation de la clientèle
• Web lot analysis : profils utilisateurs
• ...
Input: Données
!Les données peuvent être quantitatives (continues ou discrètes) ou bien
qualitatives.
!Les données quantitatives continues doivent être discrétisées.
Exemples: Data set « Trees », data set « Bank »
day_of_
job marital education default housing loan contact month poutcome
week
7 11.0 66 15.6
housem telephon
0 married basic.4y no no no may mon nonexistent
4 10.5 72 16.4 aid e
28 17.9 80 58.3 1 services single
high.schoo unknow
no no email may mon nonexistent
l n
12 11.4 76 21.0
high.schoo telephon
2 services married no yes no may mon nonexistent
15 12.0 75 19.1 l e
30 18.0 80 51.0 3 admin. married basic.6y no no no email may mon nonexistent
17 12.9 85 33.8
high.schoo telephon
8 11.0 75 18.2 4 services single no no yes may mon nonexistent
l e
Classes
!Les classes ne sont pas connues =>le nombre de classe n’est pas connu à
l’avance. Il est à déterminé.
Clustering par partitionnement
Clustering hiérarchique
Similarité/Dissimilarité
Pour définir l'homogénéité d'un groupe d'observations, il est nécessaire de mesurer la
ressemblance entre deux observations.
Dissimilarité
!Une fonction de dissimilarité est une fonction d qui a tout couple (x1; x2) associe une valeur
dans R+ telle que :
!d(x1; x2) = d(x2; x1)>= 0,
!d(x1; x2) = 0 => x1 = x2
!Plus la mesure est faible, plus les points sont similaires.
Similarité
!Une fonction de similarité est une fonction s qui a tout couple (x1; x2) associe une valeur dans
R+ telle que :
!s(x1; x2) = s(x2; x1)>= 0,
!s(x1; x1) >=s(x1; x2)
!Plus la mesure est grande, plus les points sont similaires.
Distance
Une distance est une dissimilarité d qui vérifie en plus l’inégalité
triangulaire :
• d (x; y ) <=d (x; z ) + d (z; y )
Quelle distance utiliser ?
Distances
Mesure de la distance d(x1; x2) entre deux points x1 et x2.
!Distance de Minkowsky :
& 1
𝑑 𝑥1, 𝑥2 = % |𝑥1, 𝑗 − 𝑥2, 𝑗|𝑞 ) 𝑞
#$%

!Distance euclidienne: q=2


&

𝑑 𝑥1, 𝑥2 = % |𝑥1, 𝑗 − 𝑥2, 𝑗|2


#$%

!Distance de Manhattan: q=1


&

𝑑 𝑥1, 𝑥2 = % |𝑥1, 𝑗 − 𝑥2, 𝑗|)


#$%
Clustering par partitionnement :
K-means (MacQueen, 1967)
Principe
• Choisir K éléments initiaux centre de gravite. K étant le nombre de
groupes (classes).
• Chaque point (objet ou tuple) xi est associé à un et un seul cluster, le
cluster Cl dont le centre est le plus proche.
• Recalculer le centre de gravité de chaque cluster Ck; k = 1:K .
• Itérer jusqu’à la stabilité, c'est à dire la convergence du critère (i.e. les
objets ne changent plus de groupes).
Exemple
! Soit un tirage aléatoire de 5 enregistrements du data set « Tree »:
Girth Height Volume
25 16.3 77 42.6
23 14.5 74 36.3
3 8.8 63 10.2
31 20.6 87 77.0
19 13.7 71 25.7
Pour répartir les arbres sur 3 clusters (K=3):
! Choisissez aléatoirement 3 enregistrements pour initialiser les centres des 3 clusters.
! Calculez la distance euclidienne entre chaque tupe et les 3 centres et puis affecter chaque enregistrement au centre
qui lui est le plus proche.
! Recalculer les centres.
! Réitérez.
Distance inter-cluster
Mesure de la distance entre deux clusters ou classes C1 et C2
! Plus proche voisin :𝐷𝑚𝑖𝑛 𝐶1, 𝐶2 = min 𝑑 𝑥𝑖 , 𝑥𝑗 , 𝑥𝑖 ∈ 𝐶1, 𝑥𝑗 ∈ 𝐶2

! Diamètre maximum: 𝐷𝑚𝑎𝑥 𝐶1, 𝐶2 = m𝑎𝑥 𝑑 𝑥𝑖 , 𝑥𝑗 , 𝑥𝑖 ∈ 𝐶1, 𝑥𝑗 ∈ 𝐶2

∑-!∈/" ∑-#∈/$ 𝑑(𝑥𝑖, 𝑥𝑗)


! Distance moyenne: 𝐷𝑚𝑜𝑦(𝐶1, 𝐶2) =
𝑛1𝑛2
n1 et n2 sont les nombres de tuples dans C1 et C2.

! Distance entre les centres de gravité: Distance des centres de gravites : Dcg (C1;C2 ) = d (𝜇1; 𝜇2 )
Avec 𝜇1 le centre de C1 et 𝜇2 le centre de C2.
Evaluation de la qualité du
clustering
Chaque cluster Ck est caractérisé par:
#
!Son centre de gravité: µ𝑘 = ∑%∈'( 𝑥𝑖 avec nk=card(Ck)
$)
!Son inertie: Jk = ∑%∈'( 𝑑2(𝑥𝑖, 𝜇𝑘 )
L’inertie d’un cluster mesure la concentration des points du cluster autour du
centre de gravité. Plus cette inertie est faible, plus petite est la dispersion des
points autour du centre de gravité.
Inertie intra-cluster: 𝐽𝑤 = ∑( ∑%∈'( 𝑑2 𝑥𝑖 , 𝜇𝑘 = ∑%∈'( 𝐽𝑘
Inertie inter-cluster: Jb = ∑( 𝑛𝑘𝑑2(𝜇𝑘 , 𝜇) avec: 𝜇 le centre de gravité de tous
les tuples:
#
𝜇= ∑ 𝑥
) % 𝑖
Evaluation de la qualité du
clustering
Comment obtenir une bonne partition?
L’inertie inter-cluster mesure « l’éloignement » des centres des clusters
entre eux.
=> Plus cette inertie est grande, plus les clusters sont bien séparés.

Il faut minimiser l’inertie intra-cluster et maximiser l’inertie inter-cluster.


Clustering par partitionnement :
K-mode
K-mode est adapté aux attributs qualitatifs.
Principe
• Choisir K éléments initiaux centre de gravite. K étant le nombre de groupes
(classes).
• Chaque point (objet ou tuple) xi est associé à un et un seul cluster, le cluster
Ci dont le centre est le plus proche.
• Recalculer le centre de gravité de chaque cluster Ck; k = 1:K .
• Itérer jusqu’à la stabilité, c'est à dire la convergence du critère (i.e. les objets ne
changent plus de groupes).
Adaptation de la distance\similarité et des centres de gravité aux variables
qualitatives.
Clustering par partitionnement :
K-mode
!Mode: associer à chaque champ du mode la valeur du champ la plus
fréquente parmi les éléments de son cluster.
!Distance: Distance de Hamming
Clustering par partitionnement :
K-mode
!Exemple de données:
Clustering hiérarchique
Deux grandes approches
• Clustering hiérarchique ascendant : CHA (Agglomeratif)
• Commencer avec les points en tant que clusters individuels.
• A chaque étape, grouper les clusters les plus proches jusqu’à obtenir k clusters.
• Clustering hiérarchique descendant: (Divisif)
• Commencer avec 1 seul cluster comprenant tous les points.
• A chaque étape, diviser un cluster jusqu’à obtenir des clusters ne contenant qu'un
point ou jusqu'e obtenir k clusters.
Clustering Hiérarchique
Ascendant
Principe:
!Chaque individu (tuple) représente un groupe
!Trouver les deux groupes les plus proches.
!Grouper les deux groupes en un nouveau groupe
!Itérer jusqu’à 1 groupe.
Clustering Hiérarchique
Ascendant
Principe: Chaque point ou cluster est progressivement absorbé par le cluster le plus
proche.
Algorithme
!Initialisation
! Chaque individu (tuple) est placé dans son propre cluster.
! Calcul de la matrice de ressemblance M entre chaque couple de clusters (ici les points)
!Répéter
! Sélection dans M des deux clusters les plus proches Ci et Cj .
! Fusion de Ci et Cj pour former un cluster Cg.
! Mise à jour de M en calculant la ressemblance entre Cg et les clusters existants.
!Jusqu’à fusion des 2 derniers clusters.

=>Comment calculer la ressemblance entre 2 clusters?


Clustering Hiérarchique
Ascendant
!Saut minimal (Single linkage) : se base sur dmin(C1;C2), distance entre les deux points les
plus proches de chaque cluster
! Tendance à produire des classes générales
! Sensibilité aux outliers et individus bruités
!Saut maximal (Complete linkage) : se base sur la distance dmax(C1;C2), distance entre les
deux points les plus éloignés des deux clusters.
! Tendance à produire des classes spécifiques (on ne regroupe que des classes très proches).
! Sensibilité aussi aux individus bruites.
!Saut moyen : se base sur la distance dmoy(C1;C2)
! Tendance à produire des classes de variance proche
!Barycentre : se base sur la distance dcg(C1;C2)
! Bonne résistance au bruit
Clustering Hiérarchique
Ascendant

!Dendogramme = représentation des fusions successives.


!Hauteur d'un cluster dans le dendogramme = similarite entre les deux
clusters avant la fusion (sauf pour certaines mesures de similarite).
Exemple
!Supposons avoir 7 données, les points
notées x1 à x7 .
!L'algorithme construit la hiérarchie
indiquée avec des couleurs.
!Une fois obtenue cette hiérarchie, on peut
obtenir une segmentation en 4 groupes en
découpant l'arbre.
! Les 4 morceaux qui tombent constituent
les 4 groupes, soit : x5 seul, x3 seul, un
groupe compose de x2 et x7 et un groupe
compose des données restantes.
Exemple

id x y
p1 0.4 0.53
p2 0.22 0.38
p3 0.35 0.32
p4 0.26 0.19
p5 0.08 0.41
p6 0.45 0.30

Données
Représentation graphique des données
Exemple: Distance Euclédienne

p1 p2 p3 p4 p5 p6

p1 0 0.24 0.22 0.37 0.34 0.23

p2 0.24 0 0.15 0.2 0.14 0.25

p3 0.22 0.15 0 0.15 0.28 0.11

p4 0.37 0.2 0.15 0 0.29 0.22

p5 0.34 0.14 0.28 0.29 0 0.39

p6 0.23 0.25 0.11 0.22 0.39 0

Distance Euclidienne entre les tuples


Exemple: Saut minimal (Single
Linkage)
Exemple: Saut maximal
(Complete Linkage)
!la similarité est déterminée par la distance maximale (tous les liens dans le
graphe de proximité).
Exemple: Saut moyen
Clustering Hiérarchique
Descendant
Principe
!Sélection du cluster le moins cohérent.
!Subdivision du cluster le moins cohérent.
Problème
!Pour faire la subdivision, il faut souvent faire appel à un clustering
hiérarchique ascendant pour savoir quelle est la meilleure façon de séparer
les points.
!Moins utilise que l'autre approche.
Conclusion
! Clustering : apprentissage non supervise.
!Regroupement des données en classes (clusters) homogènes
!Propriétés d'un bon clustering : identifier des classes très homogènes
(faible variance intra classe) et bien séparées (forte variance inter-classe)
!De nombreux critères pour évaluer la qualité d'un clustering
!Le nombre de clusters est un hyper-paramètre qui dépend de l'application
mais peut être déterminé sur la base des critères
!De nombreux algorithmes de clustering.

Vous aimerez peut-être aussi