高斯混合模型交叉验证
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 上的一个问题中提出(这是一个比交叉验证更广泛的术语)。
【讨论】:
以上是关于高斯混合模型交叉验证的主要内容,如果未能解决你的问题,请参考以下文章