期望最大化问题 - 如何在数据中找到最佳的高斯数

时间:2011-06-29 18:50:37

标签: matlab data-mining expectation-maximization

Plot of 2 - Dimensional data

在应用期望最大化算法之前,是否存在如何确定应在一组数据中识别的高斯数的算法或技巧?

例如,在上面所示的二维数据图中,当我应用期望最大化算法时,我尝试将4个高斯拟合到数据中,我将获得以下结果。

enter image description here

但是,如果我不知道数据中的高斯数?有没有我可以应用的算法或技巧,以便我能找到这个细节?

3 个答案:

答案 0 :(得分:8)

这可能有点像翻新,因为其他人已经将维基文章与实际的群集数量确定相关联,但我发现这篇文章过于密集,所以我想我会提供一个简短直观的答案:< / p>

基本上,对于数据集中的聚类数量没有普遍“正确”的答案 - 聚类越少,描述长度越小但方差越大,并且在所有非平凡数据集中方差越大除非你对每个点都有高斯分布,否则不会完全消失,这会使聚类变得无用(这是一种更普遍的现象,称为“偏见自由学习的无效性”:一个没有先验假设的学习者目标概念的身份没有合理的基础来对任何看不见的实例进行分类。)

因此,您基本上必须选择数据集的某些功能,以便通过群集的数量最大化(有关示例功能,请参阅有关归纳偏差的wiki article

在其他令人遗憾的消息中,在所有这些情况下,找到群集的数量是known to be NP-hard,因此您可以期待的最好的启发式方法。

答案 1 :(得分:1)

维基百科有关于此主题的article。我不太熟悉这个主题,但我被告知,不需要指定簇数的聚类算法需要一些关于簇的密度信息或簇之间的一些最小距离。

答案 2 :(得分:1)

  1. 非参数贝叶斯聚类现在受到很多关注。你不需要指定集群。
  2. Autoclass是一种自动识别混合物中簇数的算法。