Esiste un modo per determinare il numero di cluster ottimale o devo semplicemente provare valori diversi e controllare i tassi di errore per decidere il valore migliore?
R
) qui: stackoverflow.com/a/15376462/1036500
Esiste un modo per determinare il numero di cluster ottimale o devo semplicemente provare valori diversi e controllare i tassi di errore per decidere il valore migliore?
R
) qui: stackoverflow.com/a/15376462/1036500
Risposte:
Il metodo che uso è usare CCC (Cubic Clustering Criteria). Cerco CCC per aumentare al massimo mentre aumento il numero di cluster di 1, quindi osservo quando il CCC inizia a diminuire. A quel punto prendo il numero di cluster al massimo (locale). Ciò sarebbe simile all'utilizzo di un diagramma ghiaione per selezionare il numero di componenti principali.
Rapporto tecnico SAS A-108 Criterio del cluster cubico ( pdf )
= numero di osservazioni n k = numero nel cluster k p = numero di variabili q = numero di cluster X = n × p matrice di dati M = q × p matrice di cluster significa Z = indicatore di cluster ( z i k = 1 se obs . Sono in cluster di k , 0 altrimenti)
Supponiamo che ogni variabile abbia media 0:
, M = ( Z ′ Z ) - 1 Z ′ X
(totale) matrice = T = X ′ X S S (tra cluster) matrice = B = M ′ Z ′ Z M S S (all'interno di cluster) matrice = W = T - B
(trace = somma degli elementi diagonali)
Impila le colonne di in una colonna lunga.
Regress su Kronecker prodotto di Z con matrice di identità p × p
Calcola R 2 per questa regressione - stesso R 2
L'idea CCC è quello di confrontare la si ottiene per un dato insieme di cluster con l' R 2 si otterrebbe da una serie di clustering distribuito uniformemente di punti in p spazio tridimensionale.