高斯混合模型作为分类器?

数据挖掘 分类 scikit-学习 聚类 无监督学习 高斯
2021-09-25 18:39:30

我正在学习 GMM 聚类算法。我不明白它如何用作分类器。这是我的想法:

1) GMM 是一种无监督的 ML 算法。至少它是这样sklearn分类的。

2)无监督方法可以对数据进行聚类,但不能进行预测。

然而,sklearn 的用户指南明确将 GMM 作为分类器应用于 iris 数据集。

如果我不得不猜测,也许在聚类之后,每个聚类都会根据某种多数投票分配给一个类标签。但是,我找不到任何文档。有人可以更深入地了解从无监督学习到有监督学习的过程吗?


一个相关的问题:当使用 GMM 作为分类器时,通常的做法是简单地 make n_components=n_classes,而不是检查 AIC、BIC 等?

1个回答

一些无监督模型可以做出预测,但不一定与原始类别标签匹配。拟合模型后,它可以预测新示例属于GaussianMixture哪个集群。这正是predictpredict_proba函数在这种情况下所做的,并且假设集群的数量设置为 3,即类的数量,该predict函数将从{0,1,2}.

然而,这仍然提出了如何GaussianMixture将特定标签分配给集群的问题?通常,它是任意选择的,但在您链接的 sklearn 示例中,它们在初始化集群中心时作弊:

# Since we have class labels for the training data, we can
# initialize the GMM parameters in a supervised manner.
estimator.means_init = np.array([X_train[y_train == i].mean(axis=0)
                                for i in range(n_classes)])

每个聚类中心的初始位置位于每个类的中心,这还具有正确排序聚类标签以匹配原始类标签的额外结果。这意味着在这种情况下,GMM 预测一个新实例属于哪个集群等价于预测它可能属于哪个类。我相信这样做是为了轻松可视化不同的协方差矩阵选项。