Existe-t-il un moyen de déterminer le numéro de cluster optimal ou dois-je simplement essayer différentes valeurs et vérifier les taux d'erreur pour décider de la meilleure valeur?
19
Existe-t-il un moyen de déterminer le numéro de cluster optimal ou dois-je simplement essayer différentes valeurs et vérifier les taux d'erreur pour décider de la meilleure valeur?
R
) ici: stackoverflow.com/a/15376462/1036500Réponses:
La méthode que j'utilise consiste à utiliser CCC (Cubic Clustering Criteria). Je cherche à augmenter le CCC au maximum lorsque j'augmente le nombre de clusters de 1, puis j'observe quand le CCC commence à diminuer. À ce stade, je prends le nombre de clusters au maximum (local). Cela reviendrait à utiliser un tracé éboulis pour sélectionner le nombre de composants principaux.
Rapport technique SAS A-108 Cubic Clustering Criterion ( pdf )
= nombre d'observations n k = nombre dans le cluster k p = nombre de variables q = nombre de clusters X = n × p matrice de données M = q × p matrice de cluster signifie Z = indicateur de cluster ( z i k = 1 si obs . i dans le cluster k , 0 sinon)n
nk k
p
q
X n×p
M q×p
Z zik=1 i k
Supposons que chaque variable a une moyenne de 0:Z′Z=diag(n1,⋯,nq) M=(Z′Z)−1Z′X
, M = ( Z ′ Z ) - 1 Z ′ X
Matrice S S (totale) = T = X ′ X S S (entre les grappes) matrice = B = M ′ Z ′ Z M S S (au sein des grappes) matrice = W = T - BSS T X′X
SS B M′Z′ZM
SS W T−B
(trace = somme des éléments diagonaux)
Empilez des colonnes de dans une longue colonne. Régression sur le produit de Kronecker de Z avec la matrice d'identité p × p Calculer R 2 pour cette régression - même R 2X
Z p×p
R2 R2
L'idée CCC est de comparer le vous obtenez pour un ensemble donné de clusters avec le R 2 que vous obtiendriez en regroupant un ensemble de points uniformément répartis dans un espace dimensionnel p .R2 R2 p
la source