Как измерить производительность гауссовой смеси?
У меня есть набор данных с 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 ответа
Поскольку у вас нет основной истины (меток), вы не можете дать определенную оценку производительности и должны полагаться на метрику выбора. Это довольно распространенная проблема для оценки качества кластеров. Поэтому есть много документации:
Есть несколько вариантов измерения производительности в этом неконтролируемом случае. Для GMM, основанных на реальных вероятностях, наиболее распространенными являются BIC и AIC. Они сразу же включаются в класс scikit GMM.
Но есть еще много метрик для измерения производительности общих кластеров. Они хорошо описаны в документации Scikit. Я нахожу Силуэт- интуитивно понятным.