Come definire il numero di cluster nel clustering K-significa?


19

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?


1
@berkay Come si definisce un tasso di errore per questo metodo non supervisionato? (o intendi la SS?)
chl

@chl, posso usare la somma degli errori al quadrato per tutti i cluster o la precisione complessiva (in questo caso conosco le etichette della classe.)
Berkay

3
@berkay Un semplice algoritmo per trovare i cluster n. è calcolare il WSS medio per 20 serie di k-medie su un numero crescente di cluster (iniziando con 2 e finendo con diciamo 9 o 10) e mantenendo la soluzione che ha WSS minimo su questo set di cluster. Un altro metodo è la statistica gap . Ma se hai già delle istanze etichettate, perché stai provando un metodo senza supervisione?
chl

@chl grazie, bella domanda, possiamo indovinare i cluster a seconda delle caratteristiche delle intenzioni, sto analizzando le nuove caratteristiche di intrusione, imitando le applicazioni legali.
Berkay,

2
Ho risposto a una Q simile con una mezza dozzina di metodi (usando R) qui: stackoverflow.com/a/15376462/1036500
Ben

Risposte:


8

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) n
nkk
p
q
Xn×p
Mq×p
ZzioK=1ioK

Supponiamo che ogni variabile abbia media 0:
, M = ( Z Z ) - 1 Z XZZ=diag(n1,,nq)M=(ZZ)1ZX

(totale) matrice = T = X X S S (tra cluster) matrice = B = M Z Z M S S (all'interno di cluster) matrice = W = T - BSSTXX
SSBMZZM
SSWTB

(trace = somma degli elementi diagonali)R2=1trace(W)trace(T)

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 2X
Zp×p
R2R2

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.R2R2p


2
Esistono altri criteri oltre a CCC. Dai un'occhiata a Determinare il numero di cluster in un set di dati , per vedere quelli principali.
Vincent Labatut,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.