Потоковая версия hmmlearn.предсказать

#python #hmmlearn

#питон #хм, узнай

Вопрос:

Я использую hmmlearn, чтобы соответствовать гауссовскому ХМ. Что-то в этом роде ниже:

 model = GaussianHMM(  n_components=4, random_state=100, covariance_type="diag",  n_iter=100000).fit(train_set)  

train_set представляет собой матрицу функций (10000×6) и выглядит как обычные многомерные нормальные данные.

После того, как я обучил его и вызвал model.predict(test_set), я получил то, что ожидал — последовательность из 4 скрытых состояний, которая соответствует набору тестовых данных. Test_data, о котором идет речь, составляет, скажем, около 500×6.

Теперь я хочу использовать эту модель в режиме реального времени (каждые 10 секунд). Я могу разогреть модель, подождав, пока у меня не будет достаточно длинной последовательности (скажем, 100×6), а затем вызвать predict, чтобы получить оценку последовательности по витерби ml, но затем я хотел бы вызвать функцию, которая берет текущие наблюдаемые данные выборки и последнее скрытое состояние и дает мне оценку ml нового скрытого состояния.

Обратите внимание, что это не просто матрица перехода — в идеале я хотел бы каким-то образом сохранить состояние прогнозируемого вычисления (витерби) в виде статического вычисления (т. Е. оно было получено), а затем просто передать новый образец, а затем получить новое (оценка ml) скрытое состояние.

Я не смог найти простого способа сделать это (кроме доступа к классу _viterbi protected, который, как я думаю, не предназначался автором).

Есть идеи, как этого добиться?

Спасибо