#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, который, как я думаю, не предназначался автором).
Есть идеи, как этого добиться?
Спасибо