如何为大型数据集实现 fanny(软聚类)?

How to implement fanny (soft clustering) for a large Dataset?

我正在尝试在不平衡的数据集上实施软聚类。该数据集有大约 20 万行和 40 列。 每当我 运行 fanny() 函数时,RStudio 崩溃,我被迫开始一个新会话。

我可以在上面的数据集上成功 运行 cmeans(),但是当我使用 fanny() 函数时。 它最初用于显示此错误:

Error: cannot allocate vector of size 123.5 Gb

所以我在启动 R 时在目标(属性)中添加了 --max-vsize=1500000M。添加此后,每当我 运行 fanny() 函数时,RAM 使用量将达到 31.8 GB。几分钟后,RStudio 就会崩溃。

library(cluster)
#The dataset 'train' has around 20 factor columns and 20 integer columns with 200k rows.
Cluster <- fanny(trainSet, 3)

显然范妮尝试使用距离矩阵。

所以建议大家仔细研究一下算法的思路,是否需要那个矩阵,或者是否可以高效实现(就是写算法,不是只是为了调用它!)而不这样做。如果它需要距离矩阵,那么你将无法在大于 65k 的数据集上实现 fanny。