Sco*_*vis 5 csv r cluster-analysis amazon-ec2 r-daisy
尝试data.frame使用R 中包中的daisy函数将具有数字、名义和 NA 值的 a 转换为相异矩阵cluster。我的目的涉及在应用 k 均值聚类进行客户细分之前创建相异矩阵。将data.frame有133153行和36列。这是我的机器。
sessionInfo()
R version 3.1.0 (2014-04-10)
Platform x86_64-w64-mingw32/x64 (64-bit)
Run Code Online (Sandbox Code Playgroud)
如何修复雏菊警告?
由于 Windows 计算机有 3 Gb RAM,我将虚拟内存增加到 100GB,希望这足以创建矩阵 - 它不起作用。我仍然有一些关于内存的错误。我研究了其他 R 包来解决内存问题,但它们不起作用。我不能bigmemory与biganalytics包一起使用,因为它只接受数字矩阵。在clara和ff包也只接受数字矩阵。
CRAN 的cluster包建议在应用 k 均值之前将高尔相似系数作为距离度量。高尔系数采用数字、名义和 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
Run Code Online (Sandbox Code Playgroud)
**编辑:我将 RStudio 与亚马逊网络服务 (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)
Run Code Online (Sandbox Code Playgroud)
如果您有大量数据,请使用不需要O(n^2) 内存的算法。交换到磁盘会降低性能,这不是一个明智的选择。
相反,请尝试减小数据集大小,或使用索引加速来避免 O(n^2) 内存成本。(而且它不仅需要 O(n^2) 内存,而且还需要 O(n^2) 距离计算,这将需要很长时间!)