r - 您使用什么方法来选择 k-means 和 EM 中的最佳聚类数?

标签 r cluster-analysis data-mining expectation-maximization

有许多聚类算法可用。一种流行的算法是 K-means,其中,基于给定数量的集群,算法迭代以找到对象的最佳集群。

你用什么方法来确定k-means聚类中数据中的簇数?

R 中是否有任何可用的包包含 V-fold cross-validation确定正确簇数的方法?

另一个很好用的方法是期望最大化 (EM) 算法,它为每个实例分配一个概率分布,指示它属于每个集群的概率。

这个算法是在 R 中实现的吗?

如果是,它是否可以选择通过交叉验证自动选择最佳集群数?

你更喜欢其他的聚类方法吗?

最佳答案

对于大型“稀疏”数据集,我会认真推荐“亲和传播”方法。
与 k 均值相比,它具有更好的性能,并且本质上是确定性的。

http://www.psi.toronto.edu/affinitypropagation/
它发表在“科学”杂志上。

然而,最佳聚类算法的选择取决于所考虑的数据集。 K Means 是一种教科书方法,很可能有人已经开发出更适合您的数据集类型的更好算法/

这是 Andrew Moore 教授(CMU,谷歌)关于 K 均值和层次聚类的一个很好的教程。
http://www.autonlab.org/tutorials/kmeans.html

关于r - 您使用什么方法来选择 k-means 和 EM 中的最佳聚类数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2312913/

相关文章:

R - `purrr::map()` 中的复合函数与管道函数

html - Shiny 中相同值的两个输入

r - R中的时空聚类方法或包?

java - 使用 mahout 和 hadoop jar 运行 K-means 集群时出现 IO 异常

python - 如何加速基于仅生成结果(右侧)是数据集的一个元素的关联规则的 Apriori 框架?

machine-learning - 对与另一个较小数据集类似的数据集中的实例进行分类的算法,其中这个较小的数据集代表单个类

R data.table 连接两个表并保留所有行

r - 按相等的桶聚合数据框

r - 如何使用 OPTICS 提取簇(R 包 - dbscan 或替代方案)

python - mlpy - 动态时间扭曲取决于 x?