2016-09-16 1 views
1

J'essaie de faire une analyse en utilisant les kmeans.r - Traces aberrantes dans le graphique des kmians

i ont un ensemble de données:

> head(data) 

      tstamp elementid  value hours 
2016-09-15 15:20:28  IN_TEMP 25.12237 15 
2016-09-15 15:20:29  IN_TEMP 25.44952 15 
2016-09-15 15:20:29  IN_TEMP 25.53550 15 
2016-09-15 15:20:39 IN_PRESSURE 101.40683 15 
2016-09-15 15:20:49  IN_TEMP 25.94596 15 
2016-09-15 15:20:49  IN_TEMP 25.38742 15 

donc je fait ceci:

dataCluster <- kmeans(data[, 3:4], 2, nstart = 20) 
dataCluster$cluster <- as.factor(dataCluster$cluster) 
levels(dataCluster$cluster) <- c("IN_TEMP", "IN_PRESSURE") 
ggplot(data, aes(value, hours, color = dataCluster$cluster)) + geom_point() 

et le résultat est: enter image description here

il est ok pour mon mais quand je fais:

table(dataCluster$cluster, data$elementid) 

      IN_PRESSURE | IN_TEMP 
    IN_TEMP |    0 | 953 
    IN_PRESSURE |  508 | 44 

J'ai 44 valeurs sur le 2ème cluster qui sont des valeurs IN_TEMP (1er cluster). Est-ce que je peux peindre ces 44 valeurs avec la couleur du 1er groupe (couleur rouge)?

Puis-je peindre ces 44 valeurs avec la couleur du 1er groupe (couleur rouge)?

Merci de votre aide Salutations

+0

Quel est le point du clustering 'kmeans' dans cette analyse? –

+0

J'ai deux types de données (température et pression). C'est évidemment que je créerais 2 clusters mais j'ai fait ça pour montrer à mon boss l'idée de cet algorithme :) – VDFerreira

Répondre

0

Si je l'ai eu correctement, ce n'est pas l'étiquette de la grappe par laquelle vous voulez colorier, mais plutôt la couleur de la variable elementid. Vous pouvez simplement utiliser ce qui suit:

ggplot(data, aes(value, hours, color = elementid)) + geom_point() 

Cela aide-t-il?

+0

C'est parfait :) merci beaucoup :) – VDFerreira

0

Vous pouvez utiliser scale_colour_manual pour définir les couleurs pour les clusters:

ggplot(...) + geom_point() + scale_colour_manual(values = c("red","red")) 

voir scale_manual pour plus de détails.