Quelqu'un peut-il expliquer le C-Index dans le contexte du clustering hiérarchique?

8

Ceci fait suite à cette question. J'essaie actuellement d'implémenter le C-Index afin de trouver un nombre presque optimal de clusters à partir d'une hiérarchie de clusters. Je le fais en calculant le C-Index pour chaque étape du clustering hiérarchique (agglomératif). Le problème est que l'indice C est minimal (0 pour être exact) pour les grappes très dégénérées. Considère ceci:

c=SSminSmaxSmin

Dans ce cas, est la somme de toutes les distances entre les paires d'observations dans le même groupe sur tous les groupes. Soit le nombre de ces paires. et sont les sommes des distances les plus basses / les plus élevées à travers toutes les paires d'observations. Dans la première étape du clustering hiérarchique, les deux observations les plus proches (distance minimale) sont fusionnées en un cluster. Soit la distance entre ces observations. Maintenant, il y a une paire d'observations dans le même cluster, donc (tous les autres clusters sont des singletons). Par conséquent, . Le problème est que également égal àSnSminSmaxndn=1S=dSmind, car est la plus petite distance (c'est pourquoi les observations ont été fusionnées en premier). Donc dans ce cas, le C-Index est toujours 0. Il reste 0 tant que seuls les clusters singleton sont fusionnés. Cela signifie que le regroupement optimal selon l'indice C consisterait toujours en un groupe de grappes contenant deux observations et les autres singletons. Cela signifie-t-il que l'indice C n'est pas applicable au clustering hiérarchique? Est-ce que je fais quelque chose de mal? J'ai beaucoup cherché, mais je n'ai trouvé aucune explication appropriée. Quelqu'un peut-il me renvoyer à une ressource disponible gratuitement sur Internet? Ou, sinon, au moins un livre que je pourrais essayer d'obtenir à la bibliothèque de mon université?d

Merci d'avance!

Björn Pollex
la source
Votre observation est correcte, mais tout va bien avec C-index. L'indice C est 0 lorsque la solution de regroupement observée ne diffère pas de la meilleure théoriquement "idéale" sous le nombre donné (observé) de distances intra-regroupement. Considérons un ensemble de données qui se compose tous de paires d'objets serrés, et les paires sont assez éloignées. Le regroupement hiérarchique sous pratiquement n'importe quelle méthode de liaison va d'abord - lors des étapes initiales - "collecter" les objets dans ces paires. Et pendant tout ce temps, l'indice C restera à 0. Plus tard, le regroupement viendra fusionner entre les paires séparées: l'indice C s'aggravera brusquement.
ttnphns
L'algorithme de calcul de l'indice C est présenté ici stats.stackexchange.com/q/343878/3277 .
ttnphns
PS N'oubliez pas que le C-Index est le plus bas (plus proche de 0) c'est le mieux!
ttnphns

Réponses:

2

Cela peut être l'un des cas où il y a plus d'art que de science à regrouper. Je suggérerais que vous laissiez votre algorithme de clustering fonctionner pendant un court instant avant de laisser les calculs de C-Index démarrer. "Le court temps" peut être après avoir traité quelques paires, juste au moment où il commence à dépasser 0, ou une autre heuristique. (Après tout, vous ne vous attendez pas à vous arrêter à 1 ou 2 clusters, sinon un algorithme de séparation différent peut avoir été déployé.)

Pour une recommandation de livre, je peux suggérer:

Vous pouvez numériser / rechercher le contenu disponible sur Google Books pour voir s'il peut répondre à vos besoins. Cela a fonctionné comme référence pour moi dans le passé.

ars
la source
Oups, vous utilisez des méthodes agglomératives, donc la partie "1 ou 2 clusters" n'a pas de sens - l'inverse s'applique, vous ne voulez pas n-1 ou n-2 singletons, etc., c'est-à-dire laisser le clustering travailler un peu avant d'appliquer des critères de validité ne devrait pas être problématique.
ars