用高斯混合模型(GMM)做聚类时,怎么确定component的个数?

  统计/机器学习 概率分布 无监督学习 开放问题    浏览次数:12497        分享
1

用高斯混合模型(GMM)做聚类时,怎么确定component的个数?可以用和K Means一样的方法吗?


 

五丁大包   2018-02-12 14:50



   2个回答 
7

正如nobodyoo1说的,一个方法是用BIC

$$BIC=−2\log(L)+k\log(n)$$

$L$是likelihood,$k$是component的个数,$n$是样本的个数。


另一个方法是根据split test的结果(或者说cross validation的结果),先用训练集得到GMM的参数,然后再在测试集上计算log-likelihood。两者明显分叉的地方就是component个数的最佳候选。


SofaSofa数据科学社区DS面试题库 DS面经

chrisliang   2018-10-11 11:21

2

可以用BIC(Bayesian information-theoretic criteria)来选择。

Gaussian Mixture Model Selection

SofaSofa数据科学社区DS面试题库 DS面经

nobodyoo1   2018-04-18 17:01



  相关讨论

关于高斯混合模型的分布的疑问

高斯混合模型里的隐变量是什么变量?

高斯混合模型对初始值敏感吗?

现实生活中有哪些例子是服从帕累托分布的?

k均值有用到EM的思想吗?

HDBSCAN和DBSCAN这两种聚类方法有什么区别?

有没有对聚类成员个数有限制的聚类算法?

一维的数据可以做聚类吗?

怎么判断训练集和测试集是同一个分布?

怎么判断一个数据集是双峰分布的?

  随便看看

凸函数、凸集分别是什么意思?

ARIMA模型中的三个参数(p, d, q)都是什么意思?

怎么对pandas dataframe做转置?

Python计算两个数组的相关系数

分类特征的目标编码是什么意思?