计算大数据的相异度矩阵

时间:2017-12-01 09:29:05

标签: r cluster-computing r-daisy

我正在尝试根据具有数字和分类特征的大数据框计算相异矩阵。当我从cluster package运行daisy函数时,收到错误消息:

  

错误:无法分配大小为X的矢量。

在我的情况下,X约为800 GB。知道如何处理这个问题吗?此外,如果有人可以帮我在并行核心中运行该功能,那也很棒。您可以在下面找到计算虹膜数据集上相异度矩阵的函数:

require(cluster)
d <- daisy(iris)

1 个答案:

答案 0 :(得分:0)

之前我有过类似的问题。在我的数据集的5k行上运行daisy()需要很长时间。

我最终在kmeans包中使用了h2o算法,该算法对分类数据进行并行化和1-hot编码。在将数据插入h2o.kmeans之前,我会确保将数据居中并缩放(平均0 w / stdev = 1)。这使得聚类算法不优先考虑具有高标称差异的列(因为它试图最小化距离计算)。我使用了scale()函数。

安装h2o后:

h2o.init(nthreads = 16, min_mem_size = '150G')
h2o.df <- as.h2o(df)
h2o_kmeans <- h2o.kmeans(training_frame = h2o.df, x = vars, k = 5, estimate_k = FALSE, seed = 1234)
summary(h2o_kmeans)