在sklearn的官方文档中,GMM高斯聚类和其他聚类方法是不在同一模块下的。
对于以下这些聚类,文档里给出了具体的评价参数。
Clustering Performance evaluation
上述链接里有具体的参数计算调用方法。
这里不一一赘述了,英文阅读有障碍的可以参考这篇博客
sklearn聚类算法评估方法 之各种系数
那关于GMM高斯聚类该用什么参数呢?GMM方法里可没有各种label和score函数,遇到问题最好还是看官方介绍,尤其是里面的demo,于是在关于GMM模型选择的一篇例子中找到了评价方法,也就是AIC/BIC准则,具体调用也很简单,model.bic(X)#X为训练数据,model为聚类模型,这里当然就是GMM了。
Gaussian Mixture Model Selection
不想看原文的可以看我复制下来的关键原代码
X = np.r_[np.dot(np.random.randn(n_samples, 2), C),
.7 * np.random.randn(n_samples, 2) + np.array([-6, 3])]
lowest_bic = np.infty
bic = []
n_components_range = range(1, 7)
cv_types = ['spherical', 'tied', 'diag', 'full']
for cv_type in cv_types:
for n_components in n_components_range:
# Fit a Gaussian mixture with EM
gmm = mixture.GaussianMixture(n_components=n_components,
covariance_type=cv_type)
gmm.fit(X)
bic.append(gmm.bic(X))
if bic[-1] < lowest_bic:
lowest_bic = bic[-1]
best_gmm = gmm
if循环里就是找bic值最小的model为best_model,也就是说BIC可以作为高斯聚类模型的选择参数。