R 集群包错误 Daisy() 函数长向量(参数 11)在 .C 中不受支持

标签 r csv amazon-ec2 cluster-analysis r-daisy

尝试使用集群中的daisy函数将具有数字、标称和NA值的data.frame转换为相异矩阵我的目的是在应用 k 均值聚类进行客户分割之前创建一个相异矩阵。 data.frame 有 133,153 行和 36 列。这是我的机器。

sessionInfo()
R version 3.1.0 (2014-04-10)
Platform x86_64-w64-mingw32/x64 (64-bit) 

如何修复雏菊警告?

由于 Windows 计算机具有 3 Gb RAM,因此我将虚拟内存增加到 100GB,希望这足以创建矩阵 - 但它不起作用。我仍然有一些关于内存的错误。我研究过其他 R 包来解决内存问题,但它们不起作用。我无法将 bigmemorybiganalytics 包一起使用,因为它只接受数字矩阵。 claraff 包也只接受数字矩阵。

CRAN 的 cluster 包建议在应用 k 均值之前将 gower 相似系数作为距离度量。高尔系数采用数值、标称和 NA 值。

Store1 <- read.csv("/Users/scdavis6/Documents/Work/Client1.csv", head=FALSE)
df <- as.data.frame(Store1)
save(df, file="df.Rda")
library(cluster)
daisy1 <- daisy(df, metric = "gower", type = list(ordratio = c(1:35)))
#Error in daisy(df, metric = "gower", type = list(ordratio = c(1:35))) :
#long vectors (argument 11) are not supported in .C

**编辑:我将 RStudio 连接到 Amazon Web Service (AWS) r3.8xlarge,具有 244Gbs 内存和 32 个 vCPU。我尝试在计算机上创建菊花矩阵,但没有足够的 RAM。 **

**编辑2:我使用 clara 函数对数据集进行聚类。 **

#50 samples
clara2 <- clara(df, 3, metric = "euclidean", stand = FALSE, samples = 50,
                rngR = FALSE, pamLike = TRUE)

最佳答案

如果您有大量数据,请使用不需要 O(n^2) 内存的算法。交换到磁盘会降低性能,这不是一个明智的选择。

相反,请尝试减小数据集大小,或使用索引加速来避免 O(n^2) 内存成本。 (而且它不仅需要 O(n^2) 内存,而且还需要 O(n^2) 距离计算,这将需要很长时间!)

关于R 集群包错误 Daisy() 函数长向量(参数 11)在 .C 中不受支持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24277999/

相关文章:

r - 在 R 中跳过 sprintf 格式字符串中的参数

r - 调用fix()后data.table对象变成data.frame

python - pandas 中的多个引号

php - 避免\r\n\on mysql 导入

javascript - 在 csv 导出中跳过逗号 (,)

mysql - 无法从 Ubuntu 计算机中安装的 Ejabberd 连接到 MySQL。 AWS-EC2

r - 循环遍历未命名的列以在 R 中的一张图上绘制

r - tidytext::unnest_tokens 是否适用于西类牙字符?

linux - aws s3 ls 未知选项 : --recursive

amazon-web-services - AWS,无法更改ec2实例类型