【问题标题】:Clustering of Count data计数数据的聚类
【发布时间】:2013-06-29 23:12:19
【问题描述】:

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

         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

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

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

【问题讨论】:

  • 这实际上是一个统计问题,而不是关于编码的问题。但请尝试热图。
  • 你说得对,我会尝试在统计部分询问。谢谢你的方法是一个好的开始

标签: r count statistics cluster-analysis


【解决方案1】:

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

## 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")

【讨论】:

    【解决方案2】:

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

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

    【讨论】:

      猜你喜欢
      • 2012-12-13
      • 2018-05-04
      • 2012-05-24
      • 2015-06-29
      • 2017-01-27
      • 2015-06-30
      • 2013-04-09
      相关资源
      最近更新 更多