使用分数指标评估高斯混合模型?



我有一维数据(在列数据上(。我使用高斯混合模型(GMM(作为密度估计,在Python中使用以下实现:https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html。通过依靠AIC/BIC标准,我能够确定组件的数量。拟合 GMM 后,我绘制了原始观测值的核密度估计值 + 从 GMM 中提取的采样数据的核密度估计值。原始命运和采样命运的情节安静相似(这很好(。但是,我想要一些指标来报告拟合模型的好坏。

g = GaussianMixture(n_components = 35)
data= df['x'].values.reshape(-1,1) # data taken from data frame (10,000 data pints)
clf= g.fit(data)# fit model
samples= clf.sample(10000)[0] # generate sample data points (same # as original data points)

我在实现中找到了分数,但不知道如何暗示。我做错了吗?或者除了直方图或核密度图之外,是否有更好的方法来显示拟合模型的准确性?

print(clf.score(data))
print(clf.score(samples))

您可以使用normalized_mutual_info_scoreadjusted_rand_scoresilhouette分数来评估集群。所有这些指标都在sklearn.metrics部分下实现。

编辑:您可以查看此链接以获取更详细的说明。

总结一下:

  • 调整后的兰德指数:衡量两个分配的相似性。

  • 规范化互信息:衡量两个分配的一致性。

  • 轮廓系数:衡量每个点的分配程度。
gmm.fit(x_vec)
pred = gmm.predict(x_vec)
print ("gmm: silhouttte: ", silhouette_score(x_vec, pred))

我最好使用交叉验证并尝试查看训练模型的准确性。

使用拟合模型的predict方法预测未见过数据的标签(使用交叉验证并报告当前性(: https://scikit-learn.org/stable/modules/generated/sklearn.mixture.GaussianMixture.html#sklearn.mixture.GaussianMixture.predict

玩具示例:

g = GaussianMixture(n_components = 35)
g.fit(train_data)# fit model
y_pred = g.predict(test_data)

编辑:

有几个选项可以衡量无监督案例的性能。对于基于真实概率的GMM,最常见的是BIC和AIC。它们立即被列入scikit GMM类。

最新更新