R Language Esempio 2 - hclust e valori anomali


Esempio

Con il clustering gerarchico, i valori anomali si presentano spesso come cluster a un punto.

Generare tre distribuzioni gaussiane per illustrare l'effetto dei valori anomali.

    set.seed(656)
    x = c(rnorm(150, 0, 1), rnorm(150,9,1), rnorm(150,4.5,1))
    y = c(rnorm(150, 0, 1), rnorm(150,0,1), rnorm(150,5,1))
    XYdf = data.frame(x,y)
    plot(XYdf, pch=20)

Dati di test

Costruisci la struttura del cluster, dividerla in tre cluster.

    XY_sing = hclust(dist(XYdf), method="single")
    XYs3 = cutree(XY_sing,k=3)
    table(XYs3)
    XYs3
      1   2   3 
    448   1   1 

Ho trovato due valori anomali e ho messo tutto il resto in un unico grande cluster. Per ottenere i cluster "reali", potrebbe essere necessario impostare k più alto.

    XYs6 = cutree(XY_sing,k=6)
    table(XYs6)
    XYs6
      1   2   3   4   5   6 
    148 150   1 149   1   1 
    plot(XYdf, pch=20, col=XYs6)

Dati di prova raggruppati - 3 valori anomali e 3 grandi cluster

Questo post di StackOverflow ha alcune indicazioni su come scegliere il numero di cluster, ma tenere presente questo comportamento nel clustering gerarchico.