俺とプログラミング

某IT企業でエンジニアをしてます。このブログではプログラミングに関わることを幅広く発信します。

GHMMでHMMをファイルへ入出力する方法

GHMMでどうやって隠れマルコフモデルのファイルへの入出力を行うかを紹介します。
非常に簡単です。

セットアップ

from ghmm import *

A = [[0.6, 0.4, 0], [0, 0.6, 0.4], [0.0, 0.0, 1.0]]
B = [[0.25, 0.25, 0.25, 0.25], [0.25, 0.25, 0.25, 0.25], [0.25, 0.25, 0.25, 0.25]]
pi = [1.0, 0, 0]
sigma = IntegerRange(0, 4)

hmm = HMMFromMatrices(sigma, DiscreteDistribution(sigma), A, B, pi)
hmm.normalize()

train_seq = EmissionSequence(sigma, [0, 0, 0, 1, 3, 2, 2, 3])
hmm.baumWelch(train_seq)

HMMのファイルへの書き込み

filename = 'trained_hmm'
hmm.write(filename)

HMMのファイルからの読み込み

from ghmm import *

filename = 'trained_hmm'

hmm = HMMOpenXML.openNewXML(filename, None)

#can be use hmm normally
test_seq = EmissionSequence(sigma, [0, 0, 0, 1, 3, 2, 2])
result = hmm.viterbi(test_seq)
Copyright © 2016 ttlg All Rights Reserved.