R Language Exemple 2 - hclust et valeurs aberrantes


Exemple

Avec la classification hiérarchique, les valeurs aberrantes apparaissent souvent sous forme de clusters à un point.

Générez trois distributions gaussiennes pour illustrer l'effet des valeurs aberrantes.

    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)

Données de test

Construisez la structure du cluster, divisez-la en trois groupes.

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

Hclust a trouvé deux valeurs aberrantes et a mis tout le reste dans un grand cluster. Pour obtenir les "vrais" clusters, vous devrez peut-être définir k plus haut.

    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)

Données de test groupées - 3 valeurs aberrantes et 3 grandes grappes

Cette publication de StackOverflow fournit des conseils sur la manière de sélectionner le nombre de clusters, mais prenez en compte ce comportement dans la classification hiérarchique.