退化解:为什么我的模型有这么多自由标量参数



我正在尝试使用 Hmmlearn 来适应和训练 HMM,但是我收到了这个我不完全理解的奇怪警告:

使用仅包含550034个数据点的117917879自由标量参数拟合模型将导致退化解。

我使用了一个相当大的数据集,但我不明白117917879自由标量参数从何而来,以及拥有退化解决方案意味着什么。

我定义我的嗯如下:

from hmmlearn import hmm
# vocab_size = 10858, is the number of states
model = hmm.GaussianHMM(n_components=vocab_size, covariance_type="full")
# frequency_list = list of length 1058, containing the initial probability of each state
model.start_prob_ = np.array(frequency_list)
# transitions is a (10858, 10858) containing the transition probabilities                            
model.transmat_ = np.array(transitions)                                       
# integer_array = My data converted to an array (size = 550034)
integer_array = integer_array.reshape(-1,1)
model.fit(integer_array)

谁能帮我改进,或者至少解释一下标量参数的来源,以及什么是退化解决方案?

是因为在任何给定的 N 状态 HMM 中都有大约 N^2 个状态。 这意味着有多种解决方案。

想想a+bx = y,如果你有两个点(x1,y1(和(x2,y2(,那么你可以找到a和b的答案,但是如果你只有一个点(x1,y1(,那么a和b将有无限数量的解。这就是退化解决方案的含义。

相关内容

  • 没有找到相关文章

最新更新