如何测量高斯混合物的性能?

时间:2017-12-03 21:33:58

标签: python pandas numpy gaussian mixture

我有一个包含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

2 个答案:

答案 0 :(得分:1)

由于您没有基本事实(标签),因此您无法对性能进行明确估计,并且必须依赖于选择的度量标准。评估集群质量是一个非常普遍的问题。因此,有大量的文件记录:

有几种方法可以衡量这种无监督案例的表现。对于基于实际概率的GMM,最常见的是BICAIC。它们立即包含在scikit GMM课程中。

但是,还有更多衡量一般集群性能的指标。它们在scikit documentation中有详细描述。我发现Silhouette-score有点直观。

答案 1 :(得分:0)

您可以对无监督学习使用不同的绩效评估。 scikit-learn提供了一些信息here。一些评估是互信息。此外,this post可以为您提供一些见解。