variable | moyenne | écart-type | min | max | manquant |
---|---|---|---|---|---|
ndons | 5.13 | 5.21 | 1 | 27.0 | 0 |
recence | 86.41 | 81.80 | 2 | 299.0 | 0 |
anciennete | 168.72 | 95.77 | 2 | 302.0 | 0 |
vdons | 117.66 | 431.08 | 1 | 19260.0 | 0 |
vdonsmax | 30.72 | 88.13 | 1 | 2460.0 | 0 |
vdonsmin | 10.98 | 28.79 | 1 | 1570.0 | 0 |
npromesse | 1.72 | 2.37 | 0 | 15.0 | 0 |
vpromesse | 61.32 | 282.07 | 0 | 12680.0 | 0 |
nradiations | 0.52 | 0.89 | 0 | 10.0 | 0 |
vradiations | 28.09 | 141.47 | 0 | 11815.0 | 7142 |
ddons | 2.13 | 1.94 | 0 | 23.9 | 5736 |
ddonsmax | 3.85 | 3.24 | 0 | 23.9 | 5736 |
ddonsmin | 1.32 | 1.83 | 0 | 23.9 | 5736 |
nrefus | 2.18 | 2.26 | 0 | 11.0 | 0 |
nrefusconsec | 1.56 | 2.06 | 0 | 11.0 | 0 |
nindecis | 0.47 | 0.93 | 0 | 8.0 | 0 |
7 Analyse de regroupements
7.1 Introduction
Si la publicité ciblée personnalisée a pris de l’essort ces derniers années en commercialisation, la segmentation de consommateurs reste une partie prenante essentielle de toute campagne de publicité ou de développement de produits.
L’analyse de regroupement est une technique d’analyse descriptive qui sert à combiner des sujets en groupes de telle sorte que les individus d’un même groupe soient le plus semblables possible et que les groupes soient le plus différent possible les uns des autres, avec des valeurs aberrantes clairement identifiées. Cette similarité est définie selon des caractéristiques provenant de variables explicatives. Le résultat de l’analyse de regroupement sera une étiquette associée à chaque observation l’assignant à un regroupement ou l’identifiant comme aberrance, nous permettant ainsi de caractériser par le biais de statistiques descriptives les différents segments obtenus.
Il y a une certaine analogie avec l’analyse factorielle. En analyse factorielle, on cherche à déterminer s’il y a des groupes de variables corrélées entre elles et à les regrouper pour réduire le nombre de variables. En analyse de regroupements, on cherche plutôt à créer des groupes d’observations similaires. Les deux méthodes servent pour l’analyse exploratoire ou descriptive.
Pour créer les regroupements, on utilisera
- Choisir les variables pertinentes à l’analyse. Cette étape peut nécessiter de créer, transformer de nouvelles variables ou d’aggréger les données.
- Décider quel méthode sera utilisée pour la segmentation.
- Choisir les hyperparamètres de l’algorithme (nombre de regroupements, rayon, etc.) et la mesure de dissemblance.
- Valider la qualité de la segmentation (interprétabilité, taille des groupes, homogénéité des regroupements).
- Avec les étiquettes, calculer un prototype de groupe.
- Interpréter les regroupements obtenus à partir des prototypes
7.2 Données
Voici en vrac quelques exemples de bases de données sur lesquelles on pourrait effectuer une analyse de regroupements.
Les programmes de fidélisation font partie de la stratégie de commercialisation de plusieurs grandes chaînes (pharmacies, épiceries): en échange de rabais et d’offres promotionnelles, la clientèle fournit des informations sociodémographique (nom, adresse, date de naissance, etc.) et utilise un identifiant numérique, une carte ou une application pour inscrire chaque achat: ce faisant, le système peut traquer les habitudes de consommation.1 Créer des regroupements permet de mieux cerner les besoins et habitudes de segments de consommateurs et ainsi d’adapter l’offre promotionnelle. Les algorithmes utilisés pour l’analyse de regroupements peuvent également servir à la résolution d’entité, qui consiste à fusionner les profils de bases de données sans identifiant unique client.
Un autre exemple d’application de l’analyse de regroupements est la segmentation de la clientèle de transport en commun. Dans la région métropolitaine de Montréal, l’Agence régionale de transport métropolitain recueille des informations sur les passages et transactions par le biais des cartes à puce Opus (achat de passes mensuelles ou de billets unitaires, lieu de l’achat, etc.) ainsi que les passages (heure, type de véhicule, emplacement approximatif pour les services d’autobus ou station de métro). En créant des regroupements, une agence de transport peut ainsi ajuster son offre et proposer des abonnements ou des produits qui reflètent les besoins de sa clientèle. Un exemple extrême de traquage de compagnie de transport est Nederlandse Spoorwegen (NS): toute personne qui veut voyager en train sur les chemins de fers néerlandais doit acheter une carte à puce et la charger, en plus de composter son billet au départ et à l’arrivée de son voyage. Cette approche, qui peut sembler intrusive, permet néanmoins de mesurer précisément la demande sur les lignes en fonction du moment de la journée et de l’associer à chaque client.
Souvent, les bases de données marketing sont souvent de nature longitudinale: chaque ligne correspond à une transaction, mais plusieurs d’entre elles peuvent être le fait d’une même personne/compte. Une fois l’analyse exploratoire des données complétée, on procédera à l’aggrégation des observations par compte client, puisque la segmentation doit être effectuée à cette échelle. C’est également à ce stade qu’on pourra créer de nouvelles variables explicatives à partir de l’information présente dans la base de données: par exemple, on pourrait considérer la fréquence moyenne d’achat, le montant moyen par transaction, le mode du moment de la journée, la variabilité de cette fréquentation, le pourcentage des ventes provenant d’articles en solde, la variabilité du montant du panier, etc. Cette liste, non exhaustive, illustre l’étape cruciale de l’extraction de l’information utilisée dans l’analyse statistique: il faut être conscients que la qualité de la segmentation dépend du choix de variables employées.
Il y a une pléthore d’exemples d’analyse de regroupements. Par exemple, les articles suivants de science politique utilisent les résultats d’élections passées ou de sondages pour établir typologie des électeurs français suite à la présidentielle, une segmentation de quartiers de Los Angeles et de New York selon leur vote ou le profils des électeurs albertains. Ce travail de maîtrise se penche de son côté sur le positionnement de joueurs lors de match de la NBA.
7.3 Choix des variables
L’analyste est libre de choisir quelles variables seront incluses dans le modèle. Le choix des variables est important: en général on veut créer des groupes d’individus qui sont homogènes par rapport à certains aspects de leur comportement ou de leur situation. On ne doit alors inclure que les variables pertinentes à cet aspect. Inclure de nombreuses variables pour lesquelles il y a une forte similitude entre individus contribue à diluer les différences.
Par exemple, si le but de l’analyse est de segmenter nos clients selon leurs habitudes de consommation (genre de boutiques fréquenté, fréquence, etc.), on n’inclura pas des variables démographiques qui feraient ressortir les différences de genre, d’âge, de revenu, etc. En fait, souvent l’analyse de regroupements servira justement à créer des groupes qui seront comparés par rapport à d’autres variables qui n’ont pas été utilisées pour créer les groupes.
La compréhension de la base de données est cruciale pour comprendre le comportement. Si on essaie de faire une segmentation du comportement d’utilisateurs et utilisatrices de transports en commun à partir d’informations auxiliaires comme le temps de passage, le nombre de correspondance et la fréquence d’utilisation, il peut être utile de créer de nouvelles variables (par exemple, une variable indicatrice qui indique si la personne voyage durant les heures de traffic entre 7h30 et 9h et 16h à 18h, le nombre hebdomadaire moyen de jours ouvrables pendant lesquels elle se déplace, etc). L’inclusion des ces variables auxiliaires peut augmenter la qualité de la segmentation.
Pour voir si certaines variables sont inutiles, il peut être utile de comparer les représentants des groupes (par exemple, le barycentre ou une observation lambda du groupe) pour voir si les moyennes ou caractéristiques diffèrent. Si ce n’est pas le cas, on pourrait envisager de recommencer la procédure en enlevant cette variable.
Si on a un nombre important de variables explicatives à disposition, il est parfois utile de réduire préalablement la dimension (par exemple, en effectuant une analyse en composantes principales) et à ne retenir que les premières composantes pour faciliter la tâche. Cette approche n’est pas la panacée: quelquefois, cette réduction de la dimension masque les différences entre groupes et mène à une segmentation inférieure à l’utilisation des variables originales.
Malheureusement, il n’est pas évident de prime abord de déterminer quelles variables inclure dans la base de données pas plus qu’il n’est facile de juger de la qualité d’une segmentation ou du nombre de regroupements à effectuer. Les choix individuels auront un impact certain sur les regroupements obtenus: on recommande d’essayer plusieurs alternatives et de vérifier graphiquement ou à l’aide de critères d’ajustement si les regroupements obtenus sont homogènes et compacts.
Si certaines variables définissent naturellement des groupes, par exemple l’âge des personnes, et fait qu’ils et elles ont des caractéristiques intrinsèquement différentes, il peut être utile de faire une segmentation indépendamment pour chacun de ces sous-groupes.
Dans ce chapitre, nous utiliserons des données simulées inspirées de campagnes de financement d’organismes de charité. Ces dernières font souvent du démarchage publicitaire auprès de donateurs ou envoient par publipostage des demandes de dons à toutes les adresses postales. Ces efforts ont un coût important: nous essaierons de créer des catégories de donateurs afin de mieux cibler les donateurs et donatrices et le moment adéquat pour ce démarchage. Plusieurs grandes compagnies sont associées à ces organismes et les parrainent: notre base de données contiendra le profil de toutes ces personnes, qu’elles fassent un don ou pas.
La base de données dons
contient 19353 observations pour 16 variables: le Tableau 7.1 fournit les statistiques descriptives. Elle a été crée en regroupement les identifiants: de nombreuses variables explicatives sont dérivées des données brutes, notamment le temps entre dons, les statistiques descriptives (montant moyen, minimum maximum) pour les dons monétaires. Ces choix de variables sont loins d’être anodins et peuvent influencer la segmentation décrite dans ce chapitre. Une rapide exploration des données révèle que près de 0% des employé(e)s n’ont pas donné à l’organisme. Une poignée de dons sont très élevés, mais la plupart des montants tourne autour de 5$, 10$, 20$, etc.
La grande proportion de données manquantes pose un problème immédiat pour la segmentation, puisque la plupart des procédures ne permettent pas de traiter ces dernières et éliminent d’office les observations correspondantes de la base des données. Ici, plusieurs valeurs manquantes (NA
) peuvent être logiquement remplacées par des valeurs numériques: par exemple, la valeur cumulative des dons (vdons
) d’une personne qui n’a jamais donné est nulle.2 En revanche, le temps d’attente entre deux dons pour une personne qui a fait un don ou moins n’est pas bien défini.
Si on essaie de créer manuellement des groupes, il apparaît logique de séparer en trois segments initiaux la base de données: les personnes qui n’ont jamais donné à l’organisme de charité mais dont les caractéristiques sont connues, les personnes qui ont fait un seul don et celles qui ont fait des dons multiples. Un algorithme ferait de toute façon vraisemblablement ressortir cette information, mais nous empêcherait d’exploiter pleinement l’ensemble des variables explicatives et de ses dérivées. On pourra effectuer la segmentation séparément sur chaque groupe avec en intrant des variables explicatives différentes.
Les intrants de l’analyse de regroupement (soit le choix des variables) est laissé à la discrétion de l’analyste. Dans notre exemple, on pourrait aisément créer de nouvelles variables pour faire ressortir des informations jugées pertinentes. Est-ce qu’on s’intéresse au montant moyen des dons, soit vdons/ndons
? Est-ce que la valeur des radiations nous intéresse, ou bien devrait-on plutôt considérer le pourcentage de la valeur promise réalisée?
On considère ci-dessous l’ensemble des personnes qui ont fait plusieurs dons. On modifie certaines variables explicatives pour réduire la corrélation entre variables et obtenir des variables plus évocatrices: le montant moyen de dons, le nombre de refus relatif à l’ancienneté du donateur ou de la donatrice et finalement la valeur de la promesse moyenne, si applicable (zéro sinon). Plusieurs variables (délais minimum et maximum entre dons, valeurs minimum, radiations, etc.) sont également abandonnées pour simplifier l’exposition et pour éviter qu’elles ne ressortent indûment. On voit également que plusieurs valeurs de radiations sont manquantes: cette variables est éliminée d’office.
<- dons |>
donsmult filter(ndons > 1L) |>
mutate(mtdons = vdons/ndons,
snrefus = nrefus/anciennete*mean(anciennete),
mpromesse = case_when(
> 0 ~ vpromesse/npromesse,
npromesse TRUE ~ 0)) |>
select(!c(
# valeurs manquantes
vradiations,
nindecis, vdons, ddonsmax,
ddonsmin, vdonsmin, npromesse,|>
vpromesse, nrefus, nradiations)) relocate(mtdons)
Le champ des applications de l’analyse de regroupements est parfois surprenant. Par exemple, cet article de FiveThirtyEight propose une segmentation des électeurs démocrates new-yorkais ou des quartiers de Los Angeles. Un autre exemple incongru est la compression d’images: la Figure 7.1 montre une image du bâtiment Decelles (coin supérieur gauche) et la reconstruction avec trois, quatre et 10 couleurs obtenues en appliquant l’algorithme des
7.4 Mesures de dissemblance
Comment mesurer si deux observations appartiennent à un même regroupement et sont similaires? Idéalement, on aimerait avoir une situation comme dans la Figure 7.2 où les regroupements sont clairement visibles. On aimerait que la similarité entre observations d’un même groupe, ou intra-groupe, soit élevée et que la similarité entre groupe soit faible. Les regroupements devraient être éloignés les uns des autres, tandis que les observations au sein de ces regroupements devraient être proches. Dans la plupart des cas, il y aura des observations isolées qui n’appartiennent pas nécessairement logiquement à l’un ou l’autre des groupes: on appelle parfois ces observations aberrances.
7.4.1 Mesures de dissemblance
Les algorithmes de segmentation comparent les observations entre elles: souvent, la matrice de données est réduite à une mesure de distance entre observations (soit les lignes de la base de données). Une mesure de dissemblance sert à quantifier la proximité de deux objets à partir de leurs coordoonnées. Elle mesure la distance entre deux vecteurs lignes d’observations
(positivité), avec égalité (distance nulle) si et seulement si (mêmes caractéristiques pour toutes les variables explicatives); (symmétrie);
Toute mesure de distance3 est une mesure de dissemblance. La mesure de dissemblance la plus utilisée en pratique est la distance euclidienne entre sujets, soit
Plus généralement, la distance de Minkowski ou distance
Il existe un très grand nombre d’autres mesures de dissemblance pour variables quantitatives, ordinales, nominales et binaires. Si les variables sont toutes binaires, la mesure d’appariement simple (simple matching), qui mesure la proportion des variables pour lesquelles les deux sujets ont des valeurs différentes, est une mesure de dissemblance adéquate.
Dans le cas de jeux de données avec des variables mixes, une option populaire est la distance de Gower (Gower 1971). Cette dernière compare deux individus selon leurs caractéristiques et est construite à partir de similarité, avec
On distingue trois type de variables dans la distance de Gowers:
- les variables binaires asymmétrique de type absence/présence donnent une valeur de
si les deux sont présentes , et si et si . les variables qualitatives ont la même modalité et sinon pour une variable continue, où est l’étendue de la variable dans l’échantillon.
La dissemblance résultante pour les types mixtes vaut zéro quand toutes les variables sont similaires/égales et un si elles sont complètement différentes/maximalement distantes.
On peut traiter les variables ordinales soit comme des variables continues, soit comme des variables nominales avec la mesure d’appariement simple; ce faisant, on n’utilise pas l’ordre entre les modalités.
7.4.2 Dissemblance et valeurs manquantes
Dans plusieurs cas, on se trouvera en présence de valeurs manquantes dans le jeu de données. Cela peut arriver pour plusieurs raisons valables (aucune candidature ne représente un partir dans une circonscription donnée pour un parti lors d’une élection, l’information est manquante, une femme ne peut avoir de cancer de la prostate, etc.) Il faut bien penser à vérifier si l’algorithme de votre choix peut gérer ces valeurs manquantes. Sinon, ces dernières devront être imputées préalablement à l’analyse de regroupements ou vous devrez faire sans les variables explicatives correspondantes.
Les définitions des distances révèlent que chaque variable explicative a le même poids. En revanche, plus une variable a une grande variance, plus elle aura de l’influence sur le calcul de la distance, ce qui peut être bon ou mauvais selon la structure des groupes. Règle générale, il est préférable d’éviter qu’une variable domine dans la segmentation. La standardisation des variables et les transformations préalables effectuées sur les variables (log, arcsin, etc.) impacteront le résultat.
On peut standardiser au préalable les variables avant de faire l’analyse. Par défaut, les variables continues seront centrées et réduites, ou standardisées, afin d’avoir une moyenne de zéro et une variance de un (scale
). On peut ensuite faire les analyses comme précédemment. Si on a des valeurs aberrantes, cela peut impacter le calcul des moyennes et variances; d’autres estimateurs de localisation et d’échelles plus robustes, par exemple la médiane et la déviation absolue par rapport à la médiane (mad
) peuvent alors être plus adéquats pour diminuer l’impact des valeurs aberrantes même si le coût de calcul associé est plus conséquent. Notez qu’il est illogique de standardiser les variables binaires et catégorielles.
# Standardisation usuelle
# (soustraire moyenne, diviser par écart-type)
<- scale(donsmult)
donsmult_std # Standardisation robuste
<- apply(
donsmult_std_rob
donsmult, MARGIN = 2,
FUN = function(x){(x - median(x))/mad(x)})
# apply permet d'appliquer une fonction
# par ligne, colonne ou cellule
# MARGIN = 2 indique colonne
# (on centre chaque colonne tour à tour)
# Déviation absolue par rapport à la médiane
# mad = médiane de |obs - mediane|
7.5 Algorithmes pour la segmentation
L’analyse de regroupements est une branche de l’apprentissage non-supervisé: contrairement à la classification, il n’existe pas de vraies étiquettes sur lesquelles se baser pour déterminer la qualité d’une segmentation. Des critères graphiques et des mesures d’homogénéité peuvent néanmoins déterminer à quel points les segments créés sont distincts les uns des autres.
L’analyse de regroupements cherche à créer une division de
Les méthodes de regroupement peuvent être regroupées grossièrement dans les catégories suivantes:
- méthodes basées sur les centroïdes et les médoïdes (
-moyennes, -médoides PAM, CLARA) - mélanges de modèles (mélanges Gaussiens, etc.)
- méthodes basées sur la connectivité (regroupements hiérarchiques, AGNES et DIANA)
- méthodes basées sur la densité (DBScan)
Dans certaines méthodes paramétriques (catégories 1 à 3), le nombre de groupes est fixé apriori et est un hyperparamètre du modèle. Les méthodes nonparamétriques déterminent plutôt ce nombre automatiquement, mais spécifient un paramètre qui contrôle le degré de lissage.
Nous survolerons uniquement les caractéristiques des principales méthodes.
7.5.1 -moyennes
L’algorithme des
Pour ce faire, on sélectionne préalablement un nombre
- Assignation (étape E): calculer la distance entre chaque observation et les prototypes; assigner chaque observation au prototype le plus près.
- Mise à jour (étape M): estimer les coordoonnées des nouveaux prototypes; si on utilise la distance Euclidienne, cela revient à calculer le barycentre (la moyenne variable par variable) des observations assignées aux regroupements.
En pratique, l’algorithme convergera rapidement vers une solution locale. Cette dernière est simplement une assignation pour laquelle, d’une itération à l’autre, aucune observation ne change de groupe.
L’algorithme des
La Figure 7.3 montre une animation avec un jeu de données fictif et
Quelquefois, on peut vouloir prédire les étiquettes de groupes de nouvelles observations. Sans réentraîner l’algorithme, on pourrait ainsi assigner de nouvelles observations au barycentre le plus près.
Voici quelques forces et faiblesses de la méthode des
- L’algorithme des
-moyennes a une complexité linéaire dans la dimension et dans le nombre de variables, soit . Ce faible coût de calcul est un avantage avec des mégadonnées ( grand) et en haute dimension grand). - L’algorithme converge rapidement vers une solution et on a des garanties que la solution est un maximum local, puisque l’algorithme minimise les répartitions et les prototypes tour à tour.
- Les
-moyennes créent des regroupements globulaires d’apparence sphérique si on utilise la distance Euclidienne: cela revient à faire une séparation linéaire de l’espace (voir Figure 7.6). - Chaque observation est assignée à un seul des
regroupements (assignation rigide). - Comme toutes les observations font partie des
groupes, les valeurs aberrantes ne sont pas traitées à part. Or, la présence de valeurs aberrantes impacte le barycentre des observations du groupe. Comme ce dernier donne le prototype du groupe, l’algorithme manque de robustesse. - L’algorithme est sensible aux valeurs initiales des prototypes et retourne des solutions différentes selon ces dernières.
Choix des hyperparamètres
L’algorithme des
- les valeurs initiales des prototypes
- le nombre de groupes
- le choix de la mesure de distance.
Valeurs initiales des prototypes
Comme mentionné précédemment, les regroupements obtenus peuvent varier fortement en fonction des valeurs de départ: la Figure 7.4 montre trois regroupements visibles avec une segmentation qui fusionne deux groupes apparents (gauche), et une solution plus sensée à droite. Une segmentation sera supérieure à une autre si elle a une plus petite valeur de la fonction objective de l’Équation 7.1: les points seront moins dispersés autour de leurs prototypes.
La solution la plus simple est de choisir aléatoirement des coordonnées initiales pour les prototypes et de répéter la segmentation plusieurs fois, en choisissant à la fin celle qui a la plus petite valeur du critère objectif.
On peut également choisir des valeurs suffisamment éloignées: l’algorithme des
- calcul de la distance carrée minimale entre l’observation
et les prototypes précédemment choisis, - Choisir la valeur initiale du
prototype au hasard parmi les observations avec une probabilité de pour l’observation .
À la fin, on obtiendra
Nombre de regroupements
L’autre paramètre crucial des
La fonction objective de l’Équation 7.1 avec la distance Euclidienne représente la somme du carré des distances (SCD) entres les observations d’un groupe et leur barycentre, soit la variabilité totale des observations des
La valeur optimale de la somme du carré des distances mesure va mécaniquement diminuer à mesure que le nombre de regroupements augmente parce que le modèle aura plus d’opportunités pour réduire la variabilité intra-groupe, donc
On peut calculer un coefficient de détermination, qui mesure pourcentage de variance expliquée, soit
On pourrait aussi tracer un diagramme de la somme du carré des distances en fonction de
Il est possible que ces critères donne beaucoup plus de regroupements que ce que l’analyste est prêt(e) à envisager. Il faut garder en tête que, davantage qu’un critère mathématique, l’interprétabilité des regroupements est notre principale critère. Les critères d’information peuvent retourner trop ou pas assez de groupe: à titre d’exemple, le panneau de gauche de la Figure 7.5 montre la somme du carré des distances pour la Figure 7.4; on voit un coude à
Mesure de distance
Toutes les distances
7.5.1.1 Application en R
Dans R, la fonction kmeans
dans le paquet de base stat
permet de faire l’analyse de regroupement. Elle ne prend pas en charge les valeurs manquantes. La fonction a plusieurs arguments, dont les coordonnées initiales des prototypes (center
; cet argument peut également être un entier qui dicte le nombre de groupes), le nombre maximum d’itération de l’algorithme EM (iter.max
) et le nombre de fois qu’on redémarre l’algorithme avec des valeurs aléatoires (nstart
).
On va estimer le modèle en faisant varier le nombre de regroupements avec pour chaque valeur de
set.seed(60602)
<- list()
kmoy <- 10L
ngmax for(i in seq_len(ngmax)){
<- kmeans(donsmult_std,
kmoy[[i]] centers = i,
nstart = 10)
}
Il suffit ensuite de choisir le nombre de regroupements voulus. Rappelez-vous que le résultat des k-moyennes est aléatoire (parce que les valeurs initiales des prototypes le sont) et les étiquettes peuvent être permutées d’une fois à l’autre même si les regroupements sont les identiques.
À des fins d’illustration, regardons la solution avec kcca
du paquet flexclust
. Le code ci-dessous montre le résultat avec la distance de Manhattan (
set.seed(60602)
<- flexclust::kcca(
kmed5 x = donsmult_std,
k = 5,
family = flexclust::kccaFamily("kmedians"),
control = list(initcent = "kmeanspp"))
# Vérifier répartition
@clusinfo
kmed5# Coordonnées des K-médianes (standardisées)
t(t(kmed5@centers)*dm_std + dm_moy)
# Étiquettes
@cluster kmed5
Il est toujours utile de regarder la taille des regroupements pour voir si on ne se trouve pas avec des regroupements fortements débalancés.
<- kmoy[[5]]
kmoy5 # Regarder la répartition
$size
kmoy5#> [1] 993 64 3812 4496 4252
On peut étudier les coordonnées des prototypes (par exemple, avec kmoy5$centers
), mais ici les données standardisées ne sont pas directement interprétables. On procède plutôt au calcul des statistiques descriptives des profils rapportées dans le Tableau 7.2.
|>
donsmult group_by(groupe = kmoy5$cluster) |>
summarise_all(mean)
1 | 2 | 3 | 4 | 5 | |
---|---|---|---|---|---|
décompte | 993 | 64 | 3812 | 4496 | 4252 |
mtdons | 13.92 | 445.49 | 24.98 | 15.32 | 12.11 |
ndons | 2.98 | 11.38 | 13.71 | 4.00 | 4.63 |
recence | 64.56 | 67.14 | 27.34 | 29.00 | 172.06 |
anciennete | 219.46 | 255.45 | 252.77 | 83.59 | 247.85 |
vdonsmax | 22.39 | 1069.30 | 61.19 | 22.53 | 19.23 |
ddons | 7.49 | 1.92 | 1.65 | 1.60 | 1.87 |
nrefusconsec | 1.82 | 0.52 | 0.47 | 0.62 | 3.15 |
snrefus | 3.17 | 0.88 | 1.05 | 4.23 | 2.71 |
mpromesse | 15.32 | 620.32 | 45.13 | 17.70 | 7.67 |
Les regroupements obtenus sont interprétables:
- Groupe 1: Petits donateurs, faible nombre de dons. N’ont pas donné depuis longtemps. Refus fréquents et délai entre dons élevés
- Groupe 2: Grands donateurs fidèles: plus petit groupe. Ces personnes ont fait plusieurs dons, leur valeur maximale est élevée. N’ont pas donné récemment.
- Groupe 3: Petits donateurs récidivistes. Dons plus élevés que la moyenne mais beaucoup de dons de faible valeur et peu fréquents.
- Groupe 4: Petits nouveaux. Moins d’ancienneté, dons fréquents et refus fréquents relativement à l’ancienneté.
- Groupe 5: Petits donateurs inactifs. Plutôt anciens, plusieurs refus.
On peut représenter graphiquement les regroupements obtenus sur les premières composantes principales avec les deux mesures de dissemblance.
Avec les
On peut étudier l’impact de l’augmentation du nombre de groupes à l’aide de différents critères. Le premier est la somme des carrés des distances intra-groupes.
<- sapply(kmoy, function(x){x$tot.withinss})
scd # Graphiques
<- homogeneite(scd)
homogene <- sapply(kmoy, BIC) bic_kmoy
On peut aussi observer directement la diminution de la somme du carré des erreurs en incluant une pénalité. Ici, tous les critères pointent vers un nombre de regroupements plus élevé que 10, mais ce peut être trop.
7.5.2 -médoides
L’algorithme des
L’algorithme de partition autour des médoïdes (PAM) procède comme suit:
- Initialisation: sélectionner
des observations comme médoïdes initiaux. - Assigner chaque observation au médoïde le plus près.
- Calculer la dissimilarité totale entre chaque médoïde et les observations de son groupe.
- Pour chaque médoïde
): considérer tous les observations à tour de rôle et permuter le médoïde avec l’observation. Calculer la distance totale et sélectionner l’observation qui diminue le plus la distance totale. - Répéter les étapes 2 à 4 jusqu’à ce que les médoïdes ne changent plus.
Puisque qu’on considère chaque observation comme candidat à devenir un médoïde à chaque étape, le coût de calcul est prohibitif.
L’algorithme CLARA, décrit dans Kaufman and Rousseeuw (1990), réduit le coût de calcul et de stockage en utilisant PAM sur de petits sous-échantillons de taille
La qualité des regroupements est obtenue en utilisant la moyenne des distances entre les regroupements et leurs médoïdes. On peut également tracer un graphique des silhouettes: pour chaque observation, on calcule la moyenne des dissimilarités entre l’observation
La valeur de la silhouette est simplement
On estime avec nos données de dons multiples les regroupements. Étant donné la taille conséquente de la base de données, il est préférable d’utiliser l’algorithme CLARA (Clustering large applications).
<- list()
kmedoide set.seed(60602)
for(k in seq_len(ngmax)){
# Algorithme quadratique en sampsize
<- cluster::clara(x = donsmult_std,
kmedoide[[k]] k = k,
sampsize = 500,
metric = "euclidean", # distance,
#cluster.only = TRUE, # ne conserver que étiquettes
rngR = TRUE, # germe aléatoire depuis R
pamLike = TRUE, # même algorithme que PAM
samples = 10) #nombre de répétitions
}
Comme les
plot(factoextra::fviz_silhouette(kmedoide[[4]]),
print.summary = FALSE)
#> cluster size ave.sil.width
#> 1 1 146 0.29
#> 2 2 190 0.25
#> 3 3 90 0.33
#> 4 4 74 0.26
Puisque les prototypes (médoïdes) sont des observations, on peut simplement extraire leur identifiant. La sortie inclut plusieurs éléments dont la taille des regroupements, la valeur du critère PAM, etc.
<- donsmult[kmedoide[[4]]$i.med,]
medoides_orig
medoides_orig# Taille des regroupements
4]]$clusinfo kmedoide[[
Voici quelques avantages et inconvénients des
- les prototypes sont des observations de l’échantillon.
- la fonction objective est moins impactée par les extrêmes.
- le coût de calcul est prohibitif avec des mégadonnées.
7.5.3 Mélange de modèles
L’algorithme des
Peut-être plus problématique, la distance Euclidienne non pondérée impose des regroupements convexes et sphériques de taille semblable: la qualité des regroupements des
Une approche plus générale considère que
Si on savait de quelle composante l’observation originait, on pourrait simplement obtenir les estimation du maximum de vraisemblance pour les paramètres de moyenne et de variance. Inversement, si on avait les valeurs des paramètres, on pourrait déterminer de quel composante l’observation est la plus susceptible de parvenir à l’aide des poids. Le modèle est estimé à l’aide de l’algorithme d’espérance-maximisation, qui itère entre l’estimation des probabilités, et celles des autres composantes. Le paramètres retournés correspondent à un maximum local, et on peut également obtenir un estimé de la variabilité de ces paramètres. Ainsi, le mélange de modèle nous donne accès à la fois à l’incertitude des paramètres et à la probabilité
La loi multinormale est caractérisée par une moyenne (qui peut servir de prototype) et par une matrice de covariance
Si
La matrice de covariance dans mclust
est paramétrisée en fonction de
Les trois lettres de l’identifiant pour volume/forme/orientation déterminent si cette composante est égale (E
), si elle varie d’un regroupement à l’autre (V
) ou si elle est indéterminée (I
). Par exemple, EII
spécifie une matrice de covariance où chaque composante a variance mclust.options("emModelNames")
et la documentation dans le Tableau 3 de Scrucca et al. (2016).
Voici quelques avantages et inconvénients des mélanges de modèles Gaussiens
- cette approche est plus flexible que les
-moyennes. - l’ajout d’une composante uniforme permet de gérer les aberrances (supporté par
mclust
). - l’algorithme EM garantie la convergence à un minimum local (comme pour les
-moyennes) - on obtient une assignation probabiliste plutôt que rigide, également pour la classification
- le coût de calcul est plus élevé que les
-moyennes - le nombre de paramètre des matrices de covariance augmente rapidement avec la dimension
7.5.3.1 Hyperparamètres
Pour le mélange de modèle, on doit fixer apriori le nombre de groupes
La forme des ellipsoïdes est un compromis entre simplicité (d’estimation) et nombre de paramètres: un modèle plus flexible sera plus difficile à estimer et nécessitera plus de temps de calcul et un plus grand nombre d’échantillon. En petite dimension, il peut être utile d’effectuer une visualisation préalable pour déterminer quel type de modèle serait suffisant. Règle générale, il faut aussi considérer le nombre de paramètres à estimer (qui dépend de mclustBIC
du paquet mclust
permet de calculer ces modèles et la méthode summary
retourne les trois meilleurs modèles selon le critère d’information.
7.5.3.2 Paquet mclust
La stratégie de base du paquet mclust
(Scrucca et al. 2016) est d’ajuster des mélanges de modèles gaussiens avec plusieurs structures de covariance en faisant varier le nombre de regroupements. Le modèle sélectionné parmi tous les candidats est celui qui a la plus petite valeur du critère BIC: ce dernier dépend de la qualité de l’ajustement et la pénalité prend en compte le nombre de paramètres de covariance, en plus des moyennes. Il est possible d’ajouter une composantes pour le bruit, de manière à éviter que les valeurs aberrantes impactent négativement la segmentation.
Une fois le modèle obtenu, plusieurs fonctionalités sont disponibles pour représenter graphiquement les ellipses des modèle pour chaque paire de variable, les nuages de points des paires de variables avec différents symboles et couleurs pour les regroupements, etc.
## Mélanges de modèles gaussiens
set.seed(60602)
library(mclust)
<- Mclust(data = donsmult_std,
mmg G = 1:10,
# Ajouter composante uniforme
# pour bruit (aberrances)
initialization = list(noise = TRUE))
# Résumé de la segmentation
summary(mmg)
On peut obtenir les étiquettes (avec 0
pour le bruit) avec mmg$classification
. Le graphique du critère d’information Bayésien (BIC) montre le négatif: on cherche donc la structure de covariance et le nombre qui maximise
plot(mmg, what = "BIC")
Avec notre grande base de données, le modèle identifie neuf regroupements et un volume variable. On peut utiliser des techniques de réduction de la dimension pour obtenir une représentation graphique.
# Matrice des nuage de points (paires de variables)
# plot(mmg, what = "classification")
# Réduction de la dimension
<- mclust::MclustDR(mmg)
reduc_dim_mmg par(mfrow = c(1,2)) # graphiques côte-à-côte
plot(reduc_dim_mmg, what = "contour")
#> Error in parameters$variance$sigma[, , k]: indice hors limites
plot(reduc_dim_mmg, what = "scatterplot")
7.5.4 Regroupements hiérarchiques
Historiquement très utilisés dans les années 70, les méthodes de regroupement hiérarchique offrent une méthode déterministe de regroupement à partir d’une matrice de dissimilarité.
L’algorithme pour la procédure agglomérative procède comme suit:
- Initialisation: chaque observation forme son propre groupe.
- les deux groupes les plus rapprochés sont fusionnés; la distance entre le nouveau groupe et les autres regroupements est recalculée.
- on répète l’étape 2 jusqu’à obtenir un seul regroupement.
La procédure divisive procède de la même façon, mais en partant d’un seul ensemble et en subdivisant ce dernier jusqu’à ce qu’il y ait autant d’observations que de groupes. Cette dernière est préférable si on veut isoler de grands regroupements, mais est rarement employée.
Il y a plusieurs façons de calculer la distance entre deux groupes d’observations. Selon notre définition, nous obtiendrons des regroupements différents. Les méthodes les plus populaires incluent
- liaison simple (plus proches voisins)
- liaison complète (voisins les plus éloignés)
- liaison moyenne: utilise la moyenne des distances entre toutes les paires de sujets (un pour chaque groupe) provenant des deux groupes.
- méthode de Ward: calcul de l’homogénéité globale
La méthode de Ward n’est pas définie en terme de distance entre représentants de groupes, mais plutôt en terme de mesure d’homogénéité au sein des groupes. Supposons qu’à une étape du processus hiérarchique, nous avons
En général, les algorithmes de regroupement hiérarchiques stockent une matrice de dissemblance
Généralement, le résultat de la procédure agglomérative avec la méthode de liaison simple inclura quelques valeurs isolées et un seul grand regroupement. Une alternative récente (Gagolewski, Bartoszuk, and Cena 2016), appelée Genie, modifie la fonction objective de la méthode de liaison simple en retenant son efficacité de calcul. Plutôt que de simplement trouver la paire de regroupements à distance minimale, cette fusion n’est appliquée que si une mesure d’inéquité est inférieur à un seuil spécifié par l’utilisateur. Si les regroupements sont fortement inéquitables, la fusion survient entre les regroupements dont un de la taille minimale courante. L’implémentation R (Gagolewski 2021) dans le paquet genieclust
est nettement plus rapide que les autres alternatives et ne nécessite pas de calculer la matrice de dissimilarité.
On peut comparer les performances des regroupements hiérarchiques selon la méthode de groupement. La page web de scikit-learn developers montre la performance sur des exemples jouets très artificiels, qui montre que selon la structure des données, l’impact de la fonction de liaison. Ici, aucun approche hiérarchique ne performe mieux que les autres dans tous les exemples.
La Figure 7.16 montre les différentes étapes de l’algorithme avec les regroupements étapes par étape, jusqu’à ce qu’on obtienne deux groupes. À l’étape 1, les observations (14, 19) sont regroupées, puis (2, 15), (10, 17). Ce n’est qu’à l’étape 7 qu’on ajoute une observation à un regroupement de deux existants.
7.5.4.1 Sélection des hyperparamètres
Outre le choix de la fonction de liaison qui déterminera la distance entre les regroupements à chaque étape, on devra choisir le nombre de regroupements.
On peut représenter le modèle à l’aide d’un dendrogramme, un arbre dont les feuilles indiquent les regroupements à chaque étape jusqu’à la racine à la dernière étape. La distance entre chaque embranchement est déterminée par notre critère: cela nous permet de sélectionner un nombre de regroupements
La hauteur du dendrogramme donne la valeur du critère associé à la mesure de regroupement: on peut sélectionne le nombre de regroupements
La fonction stat::hclust
permet de faire des regroupements agglomératifs (agnes
), mais fastcluster
propose une version avec une empreinte mémoire inférieure. Le paquet cluster
offre de son côté l’algorithme divisif (diana
).
Voici quelques particularités des méthodes de regroupement hiérarchique.
- la solution du regroupement hiérarchique est toujours la même (déterministe)
- l’assignation d’une observation à un regroupement est finale
- les aberrances ne sont pas traitées et sont souvent assignées dans des regroupements à part
- les méthodes d’arborescence sont faciles à expliquer
- le nombre de groupes n’a pas à être spécifié apriori (une seule estimation)
- le coût de calcul est prohibitif, avec une complexité quadratique de
pour la méthode de liaison simple et autrement pour la plupart des autres fonctions de liaison.
7.6 Conclusion
Le résultat d’une analyse de regroupements est une étiquette pour chaque observation. Parfois, la méthode d’analyse de regroupement retourne également un prototype (le barycentre, une observation du groupe ou la médiane coordonnée par coordonnée) qui permet d’interpréter les regroupements.
L’analyse de regroupement est une méthode d’apprentissage non-supervisé: l’objectif est de déduire la structure présente dans un ensemble de points sans étiquette préalable (contrairement à la classification). Ainsi, une fois cqu’on a obtenu les étiquettes, on peut comparer les regroupements entre eux avant d’effectuer le profilage. Est-ce que les regroupements sont homogènes et que les observations sont près de leur représentant de groupe? On pourrait calculer les silhouettes et voir si les groupes sont bien équilibrés, etc. S’il n’existe pas de solution, il existe des segmentations de moins bonne qualité (parce que difficilement interprétables, avec des regroupements qui contiennent une poignée d’observations). Si la segmentation n’est pas satisfaisante, on retourne à la planche à dessin et on modifie les variables, la méthode ou la calibration des hyperparamètres jusqu’à ce qu’on soit satisfaits du résultat.
- L’objectif d’une analyse de regroupement est de mettre en commun des observations de telle sorte que les observations d’un même groupe soient le plus semblables possible, et que les groupes soient le plus différent possible les uns des autres.
- Chaque observation se voit assigner une étiquette de groupe.
- On procède ensuite à une analyse descriptive, segment par segment, à l’aide de prototypes.
- L’analyse de regroupement est une méthode d’apprentissage non-supervisée: il n’y a pas de véritable séparation.
- La segmentation n’est utile que si elle a une valeur ajoutée.
- Plusieurs choix de l’analyste (mesure de dissemblance, algorithme ou méthode de regroupement, choix des hyperparamètres) peuvent donner une segmentation différente. L’analyste a une grande marge de manoeuvre.
- Chaque algorithme de segmentation a des avantages et inconvénients.
- L’algorithme des
-moyennes est le plus employé et son faible coût permet son utilisation avec des mégadonnées. - Aucun algorithme ne performe uniformément mieux, mais certains sont plus faciles à employer que d’autres.
- Avec des mégadonnées, la complexité est un facteur important à considérer pour le choix de la méthode.
- La plupart du temps, le choix des hyperparamètres nécessite un peu d’essai et erreur.
- La segmentation peut être médiocre parce que les hyperparamètres sont mal choisis.
- Le nombre de groupes peut être guidé par le contexte: les formules et indicateurs de qualité servent de balises.
Il existe bien sûr d’autres méthodes de traque pour les personnes qui n’ont pas de compte client, notamment par le biais de numéros de carte de débit ou de crédit qui permettent de regrouper les transactions.↩︎
Imputer par la moyenne ou utiliser une méthode plus sophistiqué serait illogique (et incorrect).↩︎
Une fonction de distance respecte en plus l’inégalité du triangle.↩︎
La distance de Manhattan est la somme des valeurs absolues entre chaque composante. En deux dimensions, si on considère une ville comme New York dont les rues sont quadrillées, cela revient à marcher le long des rues alors que la distance Euclidienne traverse les édifices.↩︎
Soit 740MB d’espace dans la mémoire vive pour stocker la moitié de la matrice de dissemblance 13617 par 13617 (la matrice étant symmétrique).↩︎
Ces critères servent également pour les regroupement hiérarchiques avec le critère de Ward.↩︎
La fonction objective s’apparente alors à la somme du carré des erreurs, et donc il y a une analogie à faire avec la vraisemblance d’un modèle Gaussien en dimension
de covariance sphérique. Cela légitimise l’emploi de critères d’information pour le choix du nombre de regroupements.↩︎