0

我正在尝试使用 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)

任何人都可以帮助我改进,或者至少解释标量参数的来源,以及退化的解决方案是什么?

4

1 回答 1

0

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

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

于 2021-06-20T10:18:52.590 回答