GMM/EM на кластере временных рядов

Согласно документу, он должен работать. Но, как изучающий пакет scikit-learn.. Я не понимаю, как это сделать. Все примеры кодов кластеризованы эллипсами или кругами, как здесь.

Мне бы очень хотелось узнать, как сгруппировать следующий график по различным схемам... 0 -3 - это среднее значение мощности за определенные периоды времени (разделенные на 4), в то время как 4, 5, 6 соответствуют стандартному отклонению года, дисперсия в будни / выходные, дисперсия зимой / летом. Таким образом, ylabel не обязательно встречается с 4,5,6. введите описание изображения здесь

Следуя примеру..BIC действительно сгенерировал, что оптимальное количество кластеров - 5.

n_components = np.arange(1, 21)
models = [GMM(n, covariance_type='full', random_state=0).fit(input)
      for n in n_components]
plt.plot(n_comp, [m.bic(read) for m in models], label = 'BIC')
plt.legend(loc='best')
plt.xlabel('n_components')

введите описание изображения здесь

Однако, если я строю график с доступным примером кода, он возвращает что-то совершенно странное, не стоит делиться. Я, хотя отрицательный BIC был в порядке. Но я даже не знаю, правильно ли он сгруппирован, чтобы вывести, что 5 является оптимальным числом.

1 ответ

Решение

В основном, чтобы закрыть этот вопрос... мой следующий пост отвечает, как кластеризовать с помощью GMM.

Создайте модель, используя параметры соответственно

gmm = GaussianMixture(n_components=10, covariance_type ='full', \
              init_params = 'random', max_iter = 100, random_state=0)

Подходит ваши данные (количество образцов х количество атрибутов), чье имя вводится в моем случае

gmm.fit(input)
print(gmm.means_.round(2))
cluster = gmm.predict(input)

Кластер содержит метки для каждого из этих образцов моего ввода

Не стесняйтесь добавлять, если я ошибся

Другие вопросы по тегам