R NbClust-错误:无法分配大小为x的向量

R NbClust-错误:无法分配大小为x的向量,r,cluster-analysis,k-means,R,Cluster Analysis,K Means,我正在R中运行k-means聚类,并希望使用NbClust来帮助确定最佳聚类数。我的数据集,df,有636688行和7列 当我运行NbClust(df,min.nc=2,max.nc=3,method=“kmeans”)时,我得到: Error: cannot allocate vector of size 1510.1 Gb In addition: Warning messages: 1: In dist(jeu, method = "euclidean") : Reached tota

我正在R中运行k-means聚类,并希望使用
NbClust
来帮助确定最佳聚类数。我的数据集,
df
,有636688行和7列

当我运行NbClust(df,min.nc=2,max.nc=3,method=“kmeans”)时,我得到:

Error: cannot allocate vector of size 1510.1 Gb
In addition: Warning messages:
1: In dist(jeu, method = "euclidean") :
  Reached total allocation of 32767Mb: see help(memory.size)
2: In dist(jeu, method = "euclidean") :
  Reached total allocation of 32767Mb: see help(memory.size)
3: In dist(jeu, method = "euclidean") :
  Reached total allocation of 32767Mb: see help(memory.size)
4: In dist(jeu, method = "euclidean") :
  Reached total allocation of 32767Mb: see help(memory.size)
这是我的
会话信息

R version 3.0.2 (2013-09-25)
Platform: x86_64-w64-mingw32/x64 (64-bit)

locale:
[1] LC_COLLATE=English_United Kingdom.1252  LC_CTYPE=English_United Kingdom.1252    LC_MONETARY=English_United Kingdom.1252
[4] LC_NUMERIC=C                            LC_TIME=English_United Kingdom.1252    

attached base packages:
[1] stats4    grid      stats     graphics  grDevices utils     datasets  methods   base     

other attached packages:
 [1] clusterSim_0.43-3 fpc_2.1-6         flexmix_2.3-11    mclust_4.2        cluster_1.14.4    MASS_7.3-29      
 [7] flexclust_1.3-4   modeltools_0.2-21 lattice_0.20-23   NbClust_1.4       rattle_2.6.26    

loaded via a namespace (and not attached):
[1] ade4_1.6-2     class_7.3-9    e1071_1.6-2    nnet_7.3-7     parallel_3.0.2 R2HTML_2.2.1   rgl_0.93.996   tools_3.0.2 

有没有办法绕过尺寸限制?我知道我可以对样本进行采样并运行
NbClust
,尽管我发现我的样本必须是完整数据集的1%,才能运行
NbClust
——我认为样本太小,即使我运行了很多次迭代,也没有什么帮助。即使是小样本,
NbClust
也很慢。我已经从
fpc
包中查看了
cluster.stats
,但这需要一个距离矩阵——这对于我和我的大型数据集来说是不可能的。

几乎没有办法回避这样一个事实,即需要在内存中拟合一个640k x 640k的矩阵。这是个大问题。所以你需要很多内存。我不知道R中有任何集群包利用存储在磁盘上的距离矩阵,但这并不意味着它们不存在。@joran R包biganalytics可以在
big.matrix
上执行k-means(函数
bigkmeans
)。我认为进行svd分解(
irlba
package)并在聚类之前获取主要特征向量有助于这种情况。@dickoa我尝试安装
biganalytics
,但得到以下结果:
>install.packages(“biganalytics”)在install.packages中发出警告:package“biganalytics”不可用(对于R版本3.0.2)install.packages中的警告:包“biganalytics”不可用(对于R版本3.0.2)
对不起,我忘了提到它只在Unix系统上工作,但我读到一些人已经成功地在windows上安装了它(我忘记了源代码)寻找不需要完整距离矩阵的算法(有很多)以及使用索引加速的实现。两者都将使它们更具可伸缩性。我发现使用STR批量加载的R*树执行得非常好。