如何计算R中的大相异矩阵

时间:2013-09-19 11:05:53

标签: r cluster-analysis

我目前正致力于聚类一些大数据,大约30k行,相差矩阵对于R来说太大了,我认为这不是纯粹的内存大小问题。也许有一些聪明的方法可以做到这一点?

1 个答案:

答案 0 :(得分:1)

如果您的数据太大而基地R无法轻易应对,那么您有几个选择:

  • 在具有更多RAM的计算机上工作。
  • 使用商业产品,例如Revolution Analysis,支持使用R。
  • 处理更大的数据

以下是使用RevoScaleR Revolution商业软件包的示例。我使用数据集diamondsggplot2的一部分,因为它包含53K行,即比您的数据大一点。这个例子没有多少分析意义,因为我天真地将因子转换为数字,但它说明了在笔记本电脑上的计算:

library(ggplot2)
library(RevoScaleR)
artificial <- as.data.frame(sapply(diamonds, as.numeric))
clusters <- rxKmeans(~carat + cut + color + clarity + price, 
                     data=artificial, numClusters=6)
clusters$centers

这导致:

      carat      cut    color  clarity      price
1 0.3873094 4.073170 3.294146 4.553910   932.6134
2 1.9338503 3.873151 4.285970 3.623935 16171.7006
3 1.0529018 3.655348 3.866056 3.135403  4897.1073
4 0.7298475 3.794888 3.486457 3.899821  2653.7674
5 1.2653675 3.879387 4.025984 4.065154  7777.0613
6 1.5808225 3.904489 4.066285 4.066285 11562.5788