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

Posted

技术标签:

【中文标题】期望最大化问题 - 如何在数据中找到最佳高斯数【英文标题】:Expectation Maximization Issue - How to find the optimum number of gaussians within the data 【发布时间】:2011-09-25 10:10:47 【问题描述】:

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

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

但如果我不知道数据中的高斯数怎么办?有没有我可以应用的算法或技巧来找出这个细节?

【问题讨论】:

你应该阅读这个***页面:en.wikipedia.org/wiki/…,同时研究“集群验证”技术 这个问题可能更适合:stats.stackexchange.com 看看kmeans函数,如果你有统计工具箱。 考虑使用DBSCANOPTICS 代替难以设置k 参数的旧k-means。 【参考方案1】:
    非参数贝叶斯聚类现在引起了广泛关注。您无需指定集群。 Autoclass 是一种从混合中自动识别聚类数量的算法。

【讨论】:

【参考方案2】:

这可能有点翻新,因为其他人已经链接了实际集群数确定的 wiki 文章,但我发现那篇文章过于密集,所以我想我会提供一个简短、直观的答案:

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

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

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

【讨论】:

【参考方案3】:

***对此主题有一个article。我对这个主题不太熟悉,但有人告诉我,不需要指定聚类数量的聚类算法需要一些关于聚类的密度信息或聚类之间的一些最小距离。

【讨论】:

使用例如DBSCANOPTICS。有关详细信息,请参阅***。

以上是关于期望最大化问题 - 如何在数据中找到最佳高斯数的主要内容,如果未能解决你的问题,请参考以下文章

R语言实现:混合正态分布EM最大期望估计法

人工智能 | K-MEANS聚类算法均值偏移聚类算法DBSCAN聚类算法使用高斯混合模型(GMM)的期望最大化(EM)聚类合成聚类

EM最大期望算法

深度聚类一些

高斯分布

K-means 聚类:根据聚类中数据点的最大大小确定最佳质心数