R 你用什么方法来选择k-means和EM中的最佳聚类数?
有许多聚类算法可用。一种流行的算法是K-means,该算法基于给定数量的聚类,迭代以找到对象的最佳聚类 在k-均值聚类中,您使用什么方法来确定数据中的聚类数 R中是否有任何可用的软件包包含用于确定正确聚类数的R 你用什么方法来选择k-means和EM中的最佳聚类数?,r,cluster-analysis,data-mining,expectation-maximization,R,Cluster Analysis,Data Mining,Expectation Maximization,有许多聚类算法可用。一种流行的算法是K-means,该算法基于给定数量的聚类,迭代以找到对象的最佳聚类 在k-均值聚类中,您使用什么方法来确定数据中的聚类数 R中是否有任何可用的软件包包含用于确定正确聚类数的V-fold交叉验证方法 另一个被广泛使用的方法是期望最大化(EM)算法,该算法为每个实例分配一个概率分布,该概率分布表示它属于每个集群的概率 这个算法是在R中实现的吗 如果是,它是否可以选择通过交叉验证自动选择最佳聚类数 您更喜欢其他的聚类方法吗?对于大型“稀疏”数据集,我会认真推荐“亲和
V-fold交叉验证
方法
另一个被广泛使用的方法是期望最大化(EM)算法,该算法为每个实例分配一个概率分布,该概率分布表示它属于每个集群的概率
这个算法是在R中实现的吗
如果是,它是否可以选择通过交叉验证自动选择最佳聚类数
您更喜欢其他的聚类方法吗?对于大型“稀疏”数据集,我会认真推荐“亲和传播”方法。
与k均值相比,它具有优越的性能,并且本质上是确定性的
它发表在《科学》杂志上
然而,最优聚类算法的选择取决于所考虑的数据集。K Means是一种教科书方法,很可能有人开发了更适合您的数据集类型的更好算法/
这是Andrew Moore教授(CMU,谷歌)关于K均值和层次聚类的一篇很好的教程。
上周,我为K-Means聚类程序编写了这样一个估计聚类数的算法。我使用的方法概述如下:
我最大的实现问题是,我必须找到一个合适的集群验证索引(即错误度量)。现在这是一个处理速度的问题,但结果目前看起来是合理的。我故意忽略了层次聚类,因为hclust是一种内存不足的方法,不适合于我实际上最感兴趣的大型数据集。请定义“最佳”大问题@Svante的含义,我一直在想这个问题。我甚至打算编写一个包,其中包含几个用于优化集群数量的算法(仅限hclust方法)@哈德利,我熟悉:C-H指数(卡林斯基和哈拉巴斯),C指数,古德曼·克鲁斯卡尔·伽马系数。有一种方法可以通过F-test“选择最佳集群解决方案”。参考文献:Miligan,G.W.和Cooper,M.C.(1985)。对确定数据集中集群数量的程序的检查,Psychometrika,50159-179尽管我假设你更喜欢“基于图形”的最优解决方案决策…@hadley,在最大化某些分数函数的意义上,可能以
类间距离
和类内距离
作为参数。例如,请参见第段中描述的最佳聚类数
中的方法:这可能也很有用: