【问题标题】:Clustering Large Data Matrix using R使用 R 对大型数据矩阵进行聚类
【发布时间】:2012-10-06 08:21:41
【问题描述】:

我有一个大数据矩阵 (33183x1681),每一行对应一个观察值,每一列对应变量。

我在 R 中使用 PAM 函数应用了 K-medoids 聚类,并尝试使用 PAM 函数提供的内置图来可视化聚类结果。我收到了这个错误:

Error in princomp.default(x, scores = TRUE, cor = ncol(x) != 2) :
cannot use cor=TRUE with a constant variable

我认为这个问题是因为我试图聚类的数据矩阵的高维。

任何想法/想法如何解决这个问题?

【问题讨论】:

  • 我注意到到目前为止您有 7 个关于 SO 的问题,并且已接受 0 个答案。通过单击解决您的问题的答案旁边的复选框,返回并标记答案为已接受,这对网站的持续运行很重要。这样做你甚至可以获得一点声望奖励。
  • 你能澄清一下你使用的是什么包吗?我知道包 cluster 中的 pam() 函数,但不知道哪个包提供函数 PAM。
  • 关于错误消息,我在提供答案之前误读了该消息,我不知道错误消息中的 x 是什么,但如果是您的数据,那么 sapply(x, function(x) length(unique(x))) 会返回任何值那是== 1。错误是说数据中的一个或多个变量是常量。
  • 加文,我知道错误的含义。这没有任何意义,因为我的数据中没有常量变量。事实上,我将矩阵的维数降低了 20%,错误就消失了。所以我认为问题出在数组的维度上。
  • 我想知道为什么我的问题被否决了?

标签: r


【解决方案1】:

查看包 cluster 中的 clara() 函数,该函数随所有版本的 R 一起提供。

library("cluster")
## generate 500 objects, divided into 2 clusters.
x <- rbind(cbind(rnorm(200,0,8), rnorm(200,0,8)),
           cbind(rnorm(300,50,8), rnorm(300,50,8)))
clarax <- clara(x, 2, samples=50)
clarax

> clarax
Call:    clara(x = x, k = 2, samples = 50) 
Medoids:
         [,1]       [,2]
[1,] -1.15913  0.5760027
[2,] 50.11584 50.3360426
Objective function:  10.23341
Clustering vector:   int [1:500] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 ...
Cluster sizes:           200 300 
Best sample:
 [1]  10  17  45  46  68  90  99 150 151 160 184 192 232 238 243 250 266 275 277
[20] 298 303 304 313 316 327 333 339 353 358 398 405 410 411 421 426 429 444 447
[39] 456 477 481 494 499 500

Available components:
 [1] "sample"     "medoids"    "i.med"      "clustering" "objective" 
 [6] "clusinfo"   "diss"       "call"       "silinfo"    "data"

请注意,您应该详细研究clara() (?clara) 的帮助以及引用的参考资料,以使clara() 执行的聚类与pam() 接近或相同。

【讨论】:

  • 为什么选择 50 个样本用于 clara 算法? CRAN 的 Cluster pdf 除了“整数,要从数据集中抽取的样本数量外,对样本变量没有说太多。默认值 5 出于历史(现在向后兼容)的原因而相当小,我们建议将样本设置为更大的数量级。”
  • 将其分成 10 个块似乎合乎逻辑,50 比默认值大一个数量级。
  • 这对我来说是一个新包,所以我不明白采样的用途。你打算通过这种方式进行二次抽样来完成什么?
猜你喜欢
  • 2013-08-10
  • 1970-01-01
  • 1970-01-01
  • 2020-11-05
  • 2011-04-13
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-15
相关资源
最近更新 更多