您使用什么方法在k-means和EM中选择最佳簇数?

时间:2010-02-22 17:53:53

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

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

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

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

另一种很好用的方法是期望最大化(EM)算法,它为每个实例分配一个概率分布,表明它属于每个聚类的概率。

这个算法是在R?

中实现的

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

您更喜欢其他一些聚类方法吗?

2 个答案:

答案 0 :(得分:5)

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

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

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

这是关于K Means和Hierarchical Clustering的Andrew Moore教授(CMU,Google)的一个很好的教程。 http://www.autonlab.org/tutorials/kmeans.html

答案 1 :(得分:0)

上周,我为K-Means聚类程序编写了这样一个估计 - 聚类数算法。我使用了以下概述的方法:

http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.70.9687&rep=rep1&type=pdf

我最大的实现问题是我必须找到一个合适的群集验证索引(即错误指标)。现在这是处理速度的问题,但结果目前看起来很合理。