高斯混合模型交叉验证

Posted

技术标签:

【中文标题】高斯混合模型交叉验证【英文标题】:Gaussian Mixture Model cross-validation 【发布时间】:2020-05-29 15:35:03 【问题描述】:

我想交叉验证我的高斯混合模型。目前我使用sklearn的cross_validation方法如下。

clf = GaussianMixture(n_components=len(np.unique(y)), covariance_type='full')
cv_ortho = cross_validate(clf, parameters_train, y, cv=10, n_jobs=-1, scoring=scorer)

我看到 cross_validation 正在使用 y_train 训练我的分类器,使其成为有监督的分类器。

try:
    if y_train is None:
        estimator.fit(X_train, **fit_params)
    else:
        estimator.fit(X_train, y_train, **fit_params)

但是,我想交叉验证一个无监督分类器clf.fit(parameters_train)。我知道分类器然后分配自己的类标签。因为,我有两个不同的集群(见图)和y 我可以破译相应的标签。然后交叉验证。 sklearn 中是否有这样的例程?

类似于本例的例程:https://scikit-learn.org/stable/auto_examples/mixture/plot_gmm_covariances.html

【问题讨论】:

【参考方案1】:

似乎典型的交叉验证既没有意义,也没有用于无监督学习(参见交叉验证堆栈交换的this question)。

为什么没有意义?

在严格的情况下,交叉验证需要关于模型提供的“正确”标签或值的一些基本事实。在 scikit-learn 方法定义中通常表示为 y。 当您以无监督方式进行训练时,训练不受监督的纯粹概念意味着没有 y 标签;没有真正的标签,没有“基本事实”。 这也在this answerevaluation of unsupervised learning 上的一个问题中提出(这是一个比交叉验证更广泛的术语)。

【讨论】:

以上是关于高斯混合模型交叉验证的主要内容,如果未能解决你的问题,请参考以下文章

高斯混合模型(GMM)

高斯混合模型GMM核心参数高斯混合模型GMM的数学形式

单高斯模型SGM & 高斯混合模型GMM

05 EM算法 - 高斯混合模型 - GMM

EM算法和混合高斯模型(一)

高斯混合模型(GMM)和EM算法