我有一个数据集(在规范化和预处理之后)包含一个包含5列和133763行的数据框。
我正在尝试应用k均值算法和神秘算法来进行聚类。但是,我的问题是 R studio继续尝试进行计算,然后抛出内存异常,即使我使用 mac bro i 7,16 gb < / p>
我的英雄聚类代码是:
dist.cards<-dist(cardsNorm)
正如我所说,需要永远运行。但是,如果我这样做了
dist.cards<-dist(cardsNorm[1:10])
它工作正常,这是因为我只使用了10行。
表示k,这是我的代码:
cardsKMS<-kmeans(cardsNorm,centers=3,iter.max = 100,nstart = 25)
它工作正常,但是当我尝试使用此代码测量模型时
a <- silhouette(cardsKMS$cluster,dist(cardsNorm))
它需要永远,永远不会完成计算
请帮助
答案 0 :(得分:1)
在n = 133763
观察之间创建距离矩阵需要(n^2-n)/2
成对比较。鉴于标量数字需要12个字节的RAM,整个矩阵需要大约100 GB。所以很遗憾你没有足够的资源。
基于距离矩阵的算法随着数据集大小的增加而缩放得非常差(因为它们在内存和CPU中本质上是二次的)所以我担心你需要尝试其他一些聚类算法。