r - 使用大型数据集确定 k 均值的最佳簇数

标签 r cluster-analysis k-means

我有一个 62 列和 181408 行的矩阵,我将使用 k 均值对其进行聚类。我理想中想要的是一种确定最佳簇数应该是多少的方法。我尝试使用 cluster 包中的 clusGap 来实现间隙统计技术(下面的可重现代码),但这会产生一些与向量 (122 GB) 和内存大小相关的错误消息。 Windows 中的限制问题和 OS X 中的“dist(xs) 中的错误:不允许负长度向量”。是否有人对确定最佳数量的技术有任何建议具有大型数据集的集群?或者,如何使我的代码发挥作用(并且不需要几天才能完成)?谢谢。

library(cluster)
inputdata<-matrix(rexp(11247296, rate=.1), ncol=62)
clustergap <- clusGap(inputdata, FUN=kmeans, K.max=12, B=10)

最佳答案

在 62 维时,由于维数灾难,结果可能毫无意义。

k-means 执行最小 SSQ 分配,从技术上讲,这等于最小化欧几里得距离平方。然而,众所周知,欧几里得距离对于高维数据来说效果不佳。

关于r - 使用大型数据集确定 k 均值的最佳簇数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15376019/

相关文章:

按组在 R 中的数据框上运行自定义函数

r - 在离线的 Debian 机器上安装最新的 R 版本

r - mongolite - 聚合方法的正确语法

r - 为ggplot2中的每个图例分配不同的背景颜色

r - 包tm。 kmeans 的问题

python - 当我有数据框时如何使用 Scikit kmeans

python - 使用 scikit-learn.k-means 库输出最接近每个聚类中心的 50 个样本

machine-learning - DBSCAN 和边界点

r - R 中的 apcluster : Memory limitation

python - 在Python中将向量的值排列到列表中