在应用期望最大化算法之前,是否有任何算法或技巧来确定应该在一组数据中识别的高斯数?
例如,在上面的二维数据图中,当我应用期望最大化算法时,我尝试将 4 个高斯拟合到数据中,我会得到以下结果。
但是如果我不知道数据中的高斯数怎么办?有没有我可以应用的算法或技巧来找出这个细节?
在应用期望最大化算法之前,是否有任何算法或技巧来确定应该在一组数据中识别的高斯数?
例如,在上面的二维数据图中,当我应用期望最大化算法时,我尝试将 4 个高斯拟合到数据中,我会得到以下结果。
但是如果我不知道数据中的高斯数怎么办?有没有我可以应用的算法或技巧来找出这个细节?
这可能有点翻新,因为其他人已经链接了实际集群数确定的 wiki 文章,但我发现那篇文章过于密集,所以我想我会提供一个简短、直观的答案:
基本上,对于数据集中的集群数量没有一个普遍“正确”的答案——集群越少,描述长度越小,但方差越大,在所有非平凡数据集中,方差不会完全消失,除非你对每个点都有一个高斯,这使得聚类无用(这是一种更普遍的现象,被称为“无偏见学习的无用性”:一个没有先验假设的学习者目标概念没有合理的基础来分类任何看不见的实例)。
因此,您基本上必须选择数据集的某些特征以通过集群数量最大化( 有关一些示例特征,请参见关于归纳偏差的 wiki文章)
在其他令人遗憾的消息中,在所有此类情况下,已知集群的数量都是NP-hard,因此您可以期待的最好的方法是一种好的启发式方法。
维基百科有一篇关于这个主题的文章。我对这个主题不太熟悉,但有人告诉我,不需要指定集群数量的聚类算法需要一些关于集群的密度信息或集群之间的一些最小距离。