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')

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

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


person dia    schedule 12.03.2018    source источник
comment
Отказ от ответственности: я не смотрел на бумагу. Не существует четкого определения правильного кластера, поэтому вам нужно решить, подходит ли конкретная кластеризация. Если результат интуитивно не очень хорош, я бы предложил использовать другие методы кластеризации, чтобы посмотреть, изменится ли что-то.   -  person Seljuk Gülcan    schedule 12.03.2018


Ответы (1)


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

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

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

Соответствуйте вашим данным (количество выборок x количество атрибутов), имя которых вводится в моем случае

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

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

Не стесняйтесь добавлять, если я что-то не так понял

person dia    schedule 20.03.2018
comment
привет, мне было интересно, не могли бы вы взглянуть на подобную проблему в моем сообщении Заранее спасибо. - person Mario; 14.08.2020