使用R对大数据矩阵进行聚类

时间:2012-10-16 09:10:32

标签: r

我有一个大数据矩阵(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

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

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

1 个答案:

答案 0 :(得分:6)

查看所有R版本附带的群集包中的clara()功能。

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