Pythonの隠れマルコフモデルライブラリGHMMの使い方
Pythonの隠れマルコフモデルライブラリ、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]] # 初期状態確率(left-to-rightモデル) pi = [1.0, 0, 0] # とり得るすべての記号を定義 sigma = IntegerRange(0, 4) #sigma = Alphabet('a','c','d','b') #文字の場合 # 隠れマルコフモデルの生成 hmm = HMMFromMatrices(sigma, DiscreteDistribution(sigma), A, B, pi) # 確率の合計が1になるように正規化 hmm.normalize() # ListからのEmissionSequenceの生成 train_seq = EmissionSequence(sigma, [0, 0, 0, 1, 3, 2, 2, 3]) # BaumWelchアルゴリズムによる学習 hmm.baumWelch(train_seq) # テスト用のEmissionSequenceの生成 test_seq = EmissionSequence(sigma, [0, 0, 0, 1, 3, 2, 2]) # viterbiアルゴリズムによる状態遷移と尤度の計算 result = hmm.viterbi(test_seq) print result # out: ([0, 0, 0, 1, 2, 2, 2], -3.988984046564275) # サンプリング (長さ5のものを10個) hmm.sample( 10, 5 )