0
假設,我必須對應於5個類別個連續程序10天每小時數據羣集成員關係,創建爲:統計上幾天
library(xts)
set.seed(123)
timestamp <- seq(as.POSIXct("2016-10-01"),as.POSIXct("2016-10-10 23:59:59"), by = "hour")
data <- data.frame(cat1 = rnorm(length(timestamp),150,5),
cat2 = rnorm(length(timestamp),130,3),
cat3 = rnorm(length(timestamp),150,5),
cat4 = rnorm(length(timestamp),100,8),
cat5 = rnorm(length(timestamp),200,15))
data_obj <- xts(data,timestamp) # creat time-series object
head(data_obj,2)
現在,每天我單獨進行集羣,看看這些類別相對於彼此表現使用簡單kmeans
爲:
daywise_data <- split.xts(data_obj,f="days",k=1) # split data day wise
clus_obj <- lapply(daywise_data, function(x){ # clustering day wise
return (kmeans(t(x), 2))
})
一旦集羣是結束了,我可視化在不同的10天羣集關係與
sapply(clus_obj,function(x) x$cluster) # clustering results
,我發現結果
目測,很顯然,cat1
和cat3
始終保持相同的羣集。類似地,cat4
和cat5
在10個不同的日子裏大多在不同的羣中。
除了目視檢查,是否有任何自動的方法來收集這種類型的統計從這樣的聚類表?
注意:這是一個虛擬的例子。我有一個包含連續100天80個類別的數據框。像上面這樣的自動總結會減少工作量。
你的解釋是正確的,我想計算這個百分比。但是[維基百科](https://en.wikipedia.org/wiki/Cluster_analysis)中提到的外部評估指標似乎並不適用於我的案例,因爲我沒有基本事實(基準)。這個聚類是無監督的。您的進一步見解可能會幫助我進一步挖掘... –
同樣的方法可用於比較兩個不同時間點的結果。大多數這些方法是對稱的,基本上它們是分區的相似性度量。 –
我改寫了一下我的問題,並在[this]得到了答案(http://stackoverflow.com/q/40713096/3317829)堆棧溢出鏈接 –