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

Matlab 期望最大化问题-如何在数据中找到最佳高斯数,matlab,data-mining,expectation-maximization,Matlab,Data Mining,Expectation Maximization,在应用期望最大化算法之前,有没有什么算法或技巧来确定一组数据中应该识别的高斯数 例如,在上面所示的二维数据图中,当我应用期望最大化算法时,我尝试对数据拟合4个高斯,我将得到以下结果 但是如果我不知道数据中的高斯数呢?有没有什么算法或技巧我可以应用,这样我就可以找到这个细节?维基百科对此有一个明确的定义。我对这个主题不太熟悉,但有人告诉我,不需要指定簇数的聚类算法需要一些关于簇的密度信息或簇之间的最小距离。这可能有点重复,因为其他人已经链接了关于实际集群数量确定的wiki文章,但我发现该文章的l

在应用期望最大化算法之前,有没有什么算法或技巧来确定一组数据中应该识别的高斯数

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


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

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

这可能有点重复,因为其他人已经链接了关于实际集群数量确定的wiki文章,但我发现该文章的lil过于密集,所以我想我应该提供一个简单直观的答案:

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

因此,您基本上必须选择数据集的某些特征,以通过集群数量实现最大化(有关一些示例特征,请参阅关于归纳偏差的wiki)

在其他不幸的消息中,在所有这些情况下,找到集群的数量是非常困难的,因此您所能期望的最好的方法是一种好的启发式方法

  • 非参数贝叶斯聚类现在得到了广泛的关注。你不需要指定聚类
  • Autoclass是一种算法,可以自动从混合中识别群集的数量

  • 你应该阅读这个维基百科页面:,同时研究“集群验证”技术上,这个问题可能更适合:如果有统计工具箱,请考虑函数,考虑使用<代码> dBase> <代码>或<代码>光学< /代码>,而不是旧k-均值,难以设置<代码> k>代码>参数。如使用<代码> dBase> <代码>或<代码>光学< /代码>。详见维基百科。