Jai utilisé la statistique GAP pour estimer k clusters dans R. Cependant, je ne suis pas sûr de bien linterpréter.
Daprès le graphique ci-dessus, je suppose que je devrais utiliser 3 clusters.
À partir du deuxième graphique, je devrais choisir 6 groupes. Est-ce une interprétation correcte de la statistique GAP?
Je vous serais reconnaissant pour toute explication.
Commentaires
Réponse
Pour obtenir un clustering idéal, vous devez sélectionner $ k $ afin de maximiser la statistique de lécart. Voici lexemple donné par Tibshirani et al. (2001) dans leur article, le graphique formé par des données artificielles à 2 clusters. Comme vous pouvez le voir, 2 est clairement lidéal $ k $, car la statistique de lécart est maximisée à $ k = 2 $:
Cependant , dans de nombreux jeux de données du monde réel, les clusters ne sont pas aussi bien définis, et nous voulons être en mesure déquilibrer la maximisation de la statistique de lécart avec la parcimonie du modèle. Exemple: la première image de OP. Si nous « maximisons la statistique de lécart seul , nous devrions choisir le modèle avec 30 clusters (voire plus!). En supposant que ce graphique va continuer à augmenter, bien sûr, les résultats sont moins utiles. Tibshirani suggère donc la méthode 1-standard-error :
Choisissez la taille du cluster $ \ hat {k} $ comme étant le plus petit $ k $ tel que $ \ text {Gap} (k) \ geq \ text {Gap} (k + 1) – s_ {k + 1} $.
Ce qui identifie de manière informelle le point auquel le taux daugmentation de la statistique de lécart commence à « ralentir ».
Donc, dans la première image de OP, si nous considérons les barres derreur rouges comme une erreur standard, alors 3 est le plus petit $ k $ qui satisfait ce critère:
Pour la deuxième image de OP, cependant, vous « verrez que la statistique de lécart diminue immédiatement pour $ k > 1 $. Ainsi, le premier $ k $ qui satisfait le critère derreur standard 1 est $ 1 $. Cest la manière du tracé de dire que les données ne doivent pas être regroupées.
En fait, il existe des moyens supplémentaires pour choisir le $ k $ optimal. La méthode par défaut de la fonction R clusGap
, par exemple, recherche toujours le maximum local du graphique et sélectionne le plus petit $ k $ avec une erreur standard En utilisant cette méthode firstSEmax
, nous sélectionnerions respectivement $ k = 30 $ et $ k = 19 $ pour les graphes 1 et 2 de OP. Comme je lai dit, cependant, cela semble souffrir dun problème de complexité.
Commentaires
- Lors de lestimation de la valeur $ k $ à partir de la statistique de lécart , comment puis-je calculer / estimer la probabilité que $ k $ soit le vrai nombre de clusters? Ou ma question est-elle dénuée de sens?
- Merci davoir souligné le compromis entre maximiser la statistique de lécart et obtenir la parcimonie du modèle
clusGap
basé sur globalmax, je ne savais pas ' comment implémenter maxSE.