2016-09-16 249 views
1

我正在嘗試使用kmeans進行分析。r - 在kmeans圖中繪製離羣點

我有一個數據集:

> 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 

所以我做了這個:

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() 

,其結果是: enter image description here

它是確定我,但是當我做:

table(dataCluster$cluster, data$elementid) 

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

我在第二個羣集上有44個值是IN_TEMP值(第一個羣集)。

我可以使用第一簇的顏色(紅色)來繪製這44個值嗎?

感謝您的幫助 問候

+0

分析中kmeans聚類的意義何在? –

+0

我有兩種數據(溫度和壓力)。它顯然是我會創建2個羣集,但我做了這個向我的老闆展示這個算法的想法:) – VDFerreira

回答

0

如果我得到了它的正確,它不是您想要着色的集羣標籤,而是您想要通過變量elementid來着色。您可以簡單地使用以下內容:

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

這有幫助嗎?

+0

這是完美的:)非常感謝你:) – VDFerreira

0

您可以使用scale_colour_manual來設置顏色集羣:

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

看到scale_manual瞭解詳情。