2017-06-04 40 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被使用训练HMM模型。

我读了documentation,但找不到函数来计算这个概率。有什么解决方法吗?

回答

1

您正在查找的概率只是转换矩阵的一行。转换矩阵的第n行给出在知道系统处于时间t的状态时在时间t+1处转换到每个状态的概率。

为了知道在该状态下系统是在给定观察序列x_1,...,x_t一个可以使用维特比算法是该方法的predicthmmlearn默认设定时间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

相关问题