2017-06-04 24 views
1

私はhmmlearnのGaussianHMMを使ってガウス観​​測値を持つ隠れマルコフモデルを訓練しています。各隠れ状態kは、対応するガウスパラメータmu_k、Sigma_kを有する。hmmlearn:時間T + 1の隠れ状態確率の予測をどのようにして完全な観測シーケンス1を与えるか:T

モデルを訓練した後、私は、次の量を計算したい:

P(Z_ {T + 1} J = | X_ {1:Tを})、

J = 1 2、... K、Kは隠れ状態の数である。

上記の確率は、x_1、x_2、...、x_T(x_i、i = 1、...、Tが使用される)の完全なシーケンスを仮定すると、基本的に1ステップ前の隠れ状態確率であるHMMモデルを訓練する。

私はdocumentationを読みましたが、この確率を計算する関数を見つけることができませんでした。回避策はありますか?

答えて

1

あなたが探している確率は、単純に遷移行列の1行です。遷移行列のn番目の行は、システムが時刻tにあることを知っている時刻t+1で各状態に遷移する確率を与える。

システムを述べるている知るためには、1つの方法hmmlearnpredictのデフォルト設定であるビタビアルゴリズムを使用することができる観察x_1,...,x_t一連の所与の時間tです。

model = hmm.GaussianHMM(n_components=3, covariance_type="full", n_iter=100) # Viterbi is set by default as the 'algorithm' optional parameter. 
model.fit(data) 
state_sequence = model.predict(data) 
prob_next_step = model.transmat_[state_sequence[-1], :] 

この具体的な使用例を示すdocumentationを詳しく見ることをお勧めします。

+1

共有いただきありがとうございます。これも私が思いついたものです。ビタビトレースバックアルゴリズムによる '.predict'呼び出しの後に、時刻' T + 1'のクラス確率は 'model.transmat_ [state_sequence [-1]、:]' – cwl

+0

に追加しました。回答。ありがとう;) – Eskapp

関連する問題