3

我正在尝试基于具有数值和分类特征的大数据框计算相异矩阵。当我从集群包daisy运行该函数时,我收到错误消息:

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

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

require(cluster)
d <- daisy(iris)
4

1 回答 1

0

我以前也遇到过类似的问题。甚至在我的数据集的 5k 行上运行daisy()也需要很长时间。

我最终使用了包中的kmeans算法,该算法对h2o分类数据进行并行化和 1-hot 编码。在将数据插入h2o.kmeans. 这是为了使聚类算法不会优先考虑具有高名义差异的列(因为它试图最小化距离计算)。我使用了这个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)
于 2017-12-05T18:58:33.463 回答