我正在尝试基于具有数值和分类特征的大数据框架计算相异矩阵。当我运行daisy
函数从集群包我收到错误消息:
错误:无法分配大小为 X 的向量。
就我而言,X 约为 800 GB。知道我该如何处理这个问题吗?此外,如果有人可以帮助我在并行核心中运行该函数,那就太好了。您可以在下面找到计算 iris 数据集上相异矩阵的函数:
require(cluster)
d <- daisy(iris)
我以前也遇到过类似的问题。跑步daisy()
即使是 5k 行的数据集也需要很长时间。
我最终使用了kmeans
算法中的h2o
并行化和 1-hot 编码分类数据的包。我只是确保在将数据插入之前将其居中并缩放(平均 0 w/ stdev = 1)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)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)