Permettez-moi, sans aller loin, simplement de copier-coller une liste d'options de ma propre fonction !kmini
(une macro pour SPSS), trouvée dans la collection "Clustering" ici .
Méthode pour créer ou sélectionner les centres de cluster initiaux. Choisir:
- RGC - centroïdes de sous-échantillons aléatoires . Les données sont partitionnées de manière aléatoire par
k
non chevauchement, par appartenance, les groupes et les centroïdes de ces groupes sont désignés comme centres initiaux. Ainsi, les centres sont calculés, non sélectionnés parmi les cas d'ensembles de données existants. Cette méthode donne des centres proches les uns des autres et du centre de gravité général des données.
- RP - points sélectionnés au hasard .
k
des cas distincts de données sont choisis au hasard pour être les centres initiaux.
- RUNFP -
points les plus éloignés (sélection en cours). Les premiers
k
cas sont considérés comme des centres puis, au cours de l'analyse des autres cas de l'ensemble de données, des remplacements entre les centres sont effectués progressivement; le but des remplacements est d'obtenir aux k
points terminaux les plus éloignés les uns des autres dans l'espace variable. Ces points (cas) occupant des positions périphériques dans le nuage de données sont les centres initiaux produits. (La méthode est utilisée par défaut dans la procédure SPSS k-means QUICK CLUSTER
. Voir détails dans SPSS Algorithms. Voir aussi décrit ici ).
- SIMFP - points les plus éloignés (sélection simple). Le premier centre est sélectionné comme cas aléatoire dans l'ensemble de données. Le 2e centre est sélectionné comme le cas le plus éloigné de ce centre. Le 3e centre est sélectionné comme le cas éloigné au maximum de ces deux (du plus proche des deux), - et ainsi de suite.
- KMPP - points les plus éloignés aléatoires, ou k-means ++. Le premier centre est sélectionné comme cas aléatoire dans l'ensemble de données. Le 2e centre est également sélectionné au hasard, mais la probabilité de sélection d'un cas est proportionnelle à la distance (euclidienne carrée) de celui-ci par rapport à ce (1er) centre. Le 3e centre est également sélectionné de manière aléatoire avec une probabilité de sélection proportionnelle à la distance d'un cas au plus proche de ces deux centres, - et ainsi de suite. (Arthur, D., Vassilvitskii, S .. K-means ++: les avantages d'un ensemencement soigné. // Actes du 18e symposium annuel ACM-SIAM sur les algorithmes discrets. 2007., 1027–1035.)
- GREP - points représentatifs du groupe . L'idée de la méthode - collecter en tant que centres
k
cas les plus représentatifs, «adjoints» Le 1er centre est considéré comme le cas le plus proche du cenroid de données générales. Ensuite, les autres centres sont sélectionnés à partir des points de données de telle manière que chaque point est considéré comme s'il est plus proche (et combien, en termes de distance euclidienne au carré) d'un ensemble de points que chacun de ces derniers est à l'un des centres déjà existants. C'est-à-dire que chaque point est examiné comme candidat pour représenter un groupe de points pas encore suffisamment bien représenté par les centres déjà collectés. Le point le plus représentatif à cet égard est choisi comme centre suivant. (Kaufman, L. Rousseeuw, PJ Finding groups in data: an introduction to cluster analysis., 1990. Voir aussi: Pena, JM et al. Une comparaison empirique de quatre méthodes d'initialisation pour l'algorithme K-means // Pattern Recognition Lett. 20 (10), 1999,
- [Il y a aussi une belle méthode, pas encore implémentée par moi dans la macro, pour générer des
k
points qui sont aléatoires uniformes mais "moins aléatoires que aléatoires", quelque part entre aléatoire et cupidité; voir la base théorique potentielle de cette méthode]
- Une autre méthode consiste à effectuer un regroupement hiérarchique par la méthode de Ward. Vous pouvez le faire sur un sous-échantillon d'objets si l'échantillon est trop grand. Alors les moyennes des
k
grappes produites par lui sont les graines initiales de la procédure k-means. La méthode de Ward est préférable à d'autres méthodes de regroupement hiérarchique car elle partage l' objectif cible commun avec k-means.
Les méthodes RGC, RP, SIMFP, KMPP dépendent de nombres aléatoires et peuvent changer leur résultat d'une exécution à l'autre.
La méthode RUNFP peut être sensible à l'ordre des cas dans l'ensemble de données; mais la méthode GREP ne l'est pas (sauf dans les cas où il existe de nombreux cas identiques, liens, dans les données). La méthode GREP peut ne pas réussir à collecter tous les k
centres si elle k
est importante par rapport au nombre de cas dans les données ( n
), surtout quand k>n/2
. [La macro informera si les données ne permettent pas à cette méthode de collecter des k
centres]. La méthode GREP est la plus lente, elle calcule [dans mon implémentation] une matrice de distances entre tous les cas, donc elle ne conviendra pas s'il y a plusieurs dizaines de milliers ou millions de cas. Vous pouvez cependant le faire sur un sous-échantillon aléatoire des données.
Je ne discute pas actuellement quelle méthode est "meilleure" et dans quelles circonstances, parce que je n'ai pas fait de sondage de simulation approfondi jusqu'à présent. Mes impressions très préliminaires et superficielles ont été que le GREP est particulièrement digne (mais il est cher), et que si vous voulez une méthode vraiment bon marché encore assez compétitive, alors juste k points aléatoires, RP, est un choix décent.
La dernière fois que j'ai fait une revue complète de la littérature à ce sujet, il y a près de 20 ans, il est vrai que les deux principales recommandations étaient les suivantes:
Dans les applications Big Data, la méthode de Ward ne fonctionne pas si bien, bien qu'elle puisse être appliquée à un sous-échantillon.
J'ai fait quelques simulations, que je n'ai jamais pu publier, et j'ai constaté que:
La principale conclusion que j'ai tirée de cela est que l'algorithme SPSS est étonnamment bon, mais si l'on a les ressources, plus de 1000 points de départ aléatoires sont le chemin à parcourir.
la source
Avec la nomenclature ttnphns, j'ai testé RGC, RP et KMPP sur:
Je ne recommande pas RGC car les centres résultants sont très proches les uns des autres: la moyenne de nombreux points est proche de la moyenne globale (loi des grands nombres). Cela peut ralentir considérablement la convergence: il faut un certain temps avant que les clusters commencent à s'individualiser.
RP est généralement bon et serait recommandé comme premier choix facile.
KMPP est très populaire et fonctionne très bien en petite dimension: par rapport à RP, il a tendance à réduire la probabilité de se terminer au minimum local.
Cependant, lorsque je travaillais sur des ensembles de données volumineux (1 million de points qui sont des sacs de mots issus de documents textuels de grande dimension), RP a légèrement surperformé KMPP en ce sens qu'il s'est terminé avec un peu moins d'itérations. J'en ai été surpris. Dans un grand ensemble de données / haute dimension, la convergence vers le minimum global est impossible, vous mesurez la qualité comme «à quel point le minimum local est bon» = «à quel point la SOD finale est petite». Les deux méthodes avaient la même qualité.
Notez qu'il est important d'utiliser une méthode aléatoire si vous souhaitez utiliser des réplications pour améliorer la qualité.
la source