0

我目前正在尝试在如下所示的数据集中查找集群:

         Dienstag 19 Mittwoch 20 Donnerstag 21 Freitag 22 Montag 25 Dienstag 26 Donnerstag 28
 [1,]           0           0             0          0         0           0            NA
 [2,]           0           0             0          0         0           0            NA
 [3,]           0           0             0          0         0           0            NA
 [4,]           0           0             0          0         1           0            NA
 [5,]           1           0             1          1         1           1            NA
 [6,]           0           0             0          0         0           0            NA
 [7,]           4           0             1          0         2           1            NA
 [8,]           0           1             2          1         0           2            NA
 [9,]           0           0             1          0         0           0            NA
[10,]           1           0             0          0         0           1             0
[11,]           2           0             1          0         0           5             0
[12,]           1           0             0          0         0           1             1
[13,]           0           1             0          0         0           0             0
[14,]           0           0             1          0         4           1             0

它对应于在给定日期和时间的情况下计算用户使用应用程序的次数。

我想找到将使用与小时相关的模式/集群,但我不知道如何管理它。如果您能给我一些有关方法的建议,那将非常有帮助。

4

2 回答 2

2

聚类也有统计方法,但这是一种视觉方法。我很懒,使用我熟悉的库来实现这个目标,但使用一些基础工具可能会更有效地完成。

## dat <-  read.table(text="         Dienstag.19 Mittwoch.20 Donnerstag.21 Freitag.22 Montag.25 Dienstag.26 Donnerstag.28
##  [1,]           0           0             0          0         0           0            NA
##  [2,]           0           0             0          0         0           0            NA
##  [3,]           0           0             0          0         0           0            NA
##  [4,]           0           0             0          0         1           0            NA
##  [5,]           1           0             1          1         1           1            NA
##  [6,]           0           0             0          0         0           0            NA
##  [7,]           4           0             1          0         2           1            NA
##  [8,]           0           1             2          1         0           2            NA
##  [9,]           0           0             1          0         0           0            NA
## [10,]           1           0             0          0         0           1             0
## [11,]           2           0             1          0         0           5             0
## [12,]           1           0             0          0         0           1             1
## [13,]           0           1             0          0         0           0             0
## [14,]           0           0             1          0         4           1             0", header=TRUE)


dat$hour <- factor(1:nrow(dat))
library(reshape2); library(qdap); library(ggplot2); library(plyr)
dat2 <- melt(dat)
dat2[, 2] <- beg2char(dat2[, 2], ".")
dat2 <- ddply(dat2, .(variable), transform,
   rescale = scale(value))

ggsave("heat.png")
ggplot(dat3, aes(variable, hour)) + geom_tile(aes(fill=rescale)) +
   scale_fill_gradient(low = "white", high = "red")

在此处输入图像描述

于 2013-07-02T14:48:38.790 回答
0

大多数聚类算法将假设连续数据。当然,您可以将整数“转换”为 double 值,但结果将不再像对于真正的连续值那样有意义。

我喜欢泰勒的视觉方法。如果有一个有意义的模式,你的大脑视觉皮层可能是发现它的最佳工具。

于 2013-07-03T07:47:31.923 回答