0

我有一个包含 27211 个样本和 90 个属性的数据集。该数据集没有类标签。我想将高斯混合拟合到数据集,但我不知道如何衡量性能。你能帮助我吗?

import numpy as np
import matplotlib.pyplot as plt
import pandas as pd
import random
from sklearn.naive_bayes import GaussianNB
from sklearn import mixture

trainFile = TRAIN_PATH_NAME + "train" + str(j+1) + ".txt"
trainData = pd.read_csv(trainFile, sep=",", header=None)

np.random.seed(42)
g = mixture.GMM(n_components=60)
g.fit(trainData.values)
print("IS_COVERGED: ", g.converged_)
sampled = g.sample(trainData.values.shape[0])
return sampled
4

2 回答 2

1

由于您没有基本事实(标签),因此您无法对性能给出明确的估计,并且必须依赖选择的指标。评估集群的质量是一个相当普遍的问题。因此,有大量的文档:

有几个选项可以衡量这种无监督案例的性能。对于基于真实概率的 GMM,最常见的是BICAIC。它们立即包含在 scikit GMM 类中。

但是还有更多指标可以衡量通用集群的性能。它们在scikit 文档中有很好的描述。我发现剪影分数有点直观。

于 2017-12-03T21:47:25.647 回答
0

您可以对无监督学习使用不同的性能评估。在这里scikit-learn提供了一些信息。一些评估是互信息的。另外,这篇文章可以给你一些见解。

于 2017-12-03T21:41:19.280 回答