Résultats négatifs des critères de regroupement

8

J'ai effectué un regroupement de points de coordonnées (longitude, latitude) et trouvé des résultats surprenants et négatifs à partir de critères de regroupement pour le nombre optimal de clusters. Les critères sont tirés du clusterCrit()package. Les points que j'essaie de regrouper sur un graphique (les caractéristiques géographiques de l'ensemble de données sont clairement visibles):

Tracé de toutes les observations

La procédure complète était la suivante:

  1. Effectué un regroupement hiérarchique sur 10 000 points et économisé des médoïdes pour des clusters de 2: 150.
  2. A pris les médoïdes de (1) comme graines pour le regroupement des kmeans de 163k observations.
  3. Vérification de 6 critères de clustering différents pour le nombre optimal de clusters.

Seuls 2 critères de regroupement ont donné des résultats qui ont du sens pour moi - les critères Silhouette et Davies-Bouldin. Pour les deux, il faut rechercher le maximum sur l'intrigue. Il semble que les deux donnent la réponse «22 clusters est un bon nombre». Pour les graphiques ci-dessous: sur l'axe x est le nombre de clusters et sur l'axe y la valeur du critère, désolé pour les descriptions erronées sur l'image. Silhouette et Davies-Bouldin respectivement:

Graphique des critères de Silhoette Graphique du critère de Davies-Bouldin

Examinons maintenant les valeurs de Calinski-Harabasz et Log_SS. Le maximum se trouve sur la parcelle. Le graphique indique que plus la valeur est élevée, meilleur est le regroupement. Une telle croissance régulière est assez surprenante, je pense que 150 clusters est déjà un nombre assez élevé. Ci-dessous les graphiques pour les valeurs de Calinski-Harabasz et Log_SS respectivement.

Tracé du critère de Calinski-Harabasz Graphique des critères Log_SS

Maintenant, pour la partie la plus surprenante, les deux derniers critères. Pour le Ball-Hall, la plus grande différence entre deux regroupements est souhaitée et pour Ratkowsky-Lance le maximum. Parcelles de Ball-Hall et Ratkowsky-Lance respectivement:

Tracé du critère de la salle de bal Graphique des critères de Ratkowsky-Lance

Les deux derniers critères donnent des réponses complètement négatives (plus le nombre de grappes est petit, mieux c'est) que les 3e et 4e critères. Comment est-ce possible? Pour moi, il semble que seuls les deux premiers critères ont pu donner un sens au regroupement. Une largeur de silhouette d'environ 0,6 n'est pas si mauvaise. Dois-je simplement sauter les indicateurs qui donnent des réponses étranges et croire en ceux qui donnent des réponses raisonnables?

Edit: Tracer pour 22 clusters22 solution de cluster


Éditer

Vous pouvez voir que les données sont assez bien regroupées en 22 groupes, donc les critères indiquant que vous devez choisir 2 clusters semblent avoir des faiblesses, l'heuristique ne fonctionne pas correctement. C'est ok quand je peux tracer les données ou quand les données peuvent être emballées dans moins de 4 composants principaux puis tracées. Mais sinon? Comment choisir le nombre de clusters autrement qu'en utilisant un critère? J'ai vu des tests qui ont indiqué Calinski et Ratkowsky comme de très bons critères et ils donnent toujours des résultats défavorables pour un ensemble de données apparemment facile. Alors peut-être que la question ne devrait pas être "pourquoi les résultats diffèrent" mais "à quel point pouvons-nous faire confiance à ces critères?".

Pourquoi une métrique euclidienne n'est-elle pas bonne? Je ne suis pas vraiment intéressé par la distance réelle et exacte entre eux. Je comprends que la vraie distance est sphérique mais pour tous les points A, B, C, D si sphérique (A, B)> sphérique (C, D) que également euclidienne (A, B)> euclidienne (C, D) qui devrait être suffisant pour une métrique de clustering.

Pourquoi je veux regrouper ces points? Je veux construire un modèle prédictif et il y a beaucoup d'informations contenues dans l'emplacement de chaque observation. Pour chaque observation, j'ai également des villes et des régions. Mais il y a trop de villes différentes et je ne veux pas faire par exemple 5000 variables factorielles; j'ai donc pensé à les regrouper par coordonnées. Cela a plutôt bien fonctionné car les densités dans les différentes régions sont différentes et l'algorithme l'a trouvé, 22 variables de facteur seraient correctes. Je pourrais également juger de la qualité du regroupement par les résultats du modèle prédictif, mais je ne suis pas sûr que ce soit un calcul judicieux. Merci pour les nouveaux algorithmes, je vais certainement les essayer s'ils fonctionnent rapidement sur d'énormes ensembles de données.

Karol Przybylak
la source
Pouvez-vous visualiser le résultat du clustering sur 22 clusters, s'il vous plaît?
A QUIT - Anony-Mousse
Quelle méthode avez-vous utilisée pour le clustering hiérarchique? Cela peut affecter considérablement les résultats que vous obtenez?
Hong Ooi
Helo Hong, j'ai utilisé la méthode "diana" avec la distance euclidienne qui devrait être une distance raisonnable pour les coordonnées. La solution de 22 grappes tracée me semble également tout à fait raisonnable.
Karol Przybylak
Merci pour votre réponse et vos conseils Anony-Mousse. Voir mon montage.
Karol Przybylak
Eh bien, vous pouvez mettre à jour votre question. comparer le résultat pour dire, agnes avec 15 grappes et agnes avec 30 grappes. Bien que les clusers soient convexes, je ne suis pas convaincu que c'est tout ce dont vous avez besoin pour avoir de "jolis" clusters. Quand un résultat de clustering est-il bon? Il y a des millions de résultats convexes possibles.
A QUIT - Anony-Mousse

Réponses:

6

La question que vous devez vous poser est la suivante: que voulez-vous réaliser .

Tous ces critères ne sont que des heuristiques . Vous jugez le résultat d'une technique d'optimisation mathématique par une autre fonction mathématique. Cela ne mesure pas réellement si le résultat est bon , mais seulement si les données correspondent à certaines hypothèses.

Maintenant que vous avez un ensemble de données globales en distance euclidienne en latitude et longitude, ce n'est déjà pas un bon choix. Cependant, certains de ces critères et algorithmes (k-means…) nécessitent cette fonction de distance inappropriée.

Certaines choses que vous devriez essayer:

  • De meilleurs algorithmes. Essayez DBSCAN et OPTICS , qui ne nécessitent pas tous les deux de spécifier le nombre de clusters! Ils ont d'autres paramètres, mais par exemple la distance et le nombre minimum de points devraient être beaucoup plus faciles à définir pour cet ensemble de données.
  • Visualisation. Au lieu de regarder les statistiques d'une mesure mathématique, choisissez le meilleur résultat par inspection visuelle ! Alors, tout d'abord, visualisez les clusters pour voir si le résultat a un sens.
  • Considérez ce que vous voulez trouver. Un critère mathématique sera heureux si vous séparez les continents. Mais vous n'avez pas besoin d'algorithme pour cela, les continents sont déjà bien connus! Alors , que ne vous voulez découvrir?
  • Supprimer les valeurs aberrantes. Les k-means et le clustering hiérarchique n'aiment pas beaucoup les valeurs aberrantes, et vous devrez peut-être augmenter le nombre de clusters à trouver par le nombre de valeurs aberrantes dans les données (DBSCAN et OPTICS mentionnés ci-dessus sont beaucoup plus robustes envers les valeurs aberrantes).
  • Fonction de distance plus appropriée. La terre est approximativement sphérique, utilisez la distance du grand cercle au lieu de la distance euclidienne.
  • Essayez de convertir les données en un système de coordonnées ECEF 3D , si vous devez utiliser la distance euclidienne. Cela produira des centres d'amas qui sont en dessous de la surface de la terre, mais cela permettra d'agréger l'Alaska, et la distance euclidienne est au moins une limite inférieure de la vraie distance de surface.

Jetez un œil, par exemple, à cette question / réponse connexe sur stackoverflow .

A QUIT - Anony-Mousse
la source
0

La longitude et la latitude sont des angles qui définissent des points sur une sphère, vous devriez donc probablement regarder la distance du grand cercle ou d'autres distances géodésiques entre les points plutôt que la distance euclidienne.

De même, comme cela a été mentionné, certains algorithmes de clustering explicitement basés sur des modèles comme les modèles de mélange et implicitement basés sur des modèles comme K-means, font des hypothèses sur la forme et la taille des clusters. Dans cette situation, attendez-vous que vos données correspondent à un modèle sous-jacent? Sinon, des méthodes basées sur la densité qui ne font pas d'hypothèses sur la forme / taille des grappes pourraient être plus appropriées.

pontikos
la source