我有一个大数据矩阵(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
我认为这个问题是因为我试图聚类的数据矩阵的高维度。
如何解决这个问题的任何想法/想法?
答案 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()
。