0

我试图在我的 HMM 上使用predict_proba()函数,但我得到一个我不完全理解的错误。首先,我创建我的模型如下:

model = hmm.GaussianHMM(n_components=vocab_size, covariance_type="full")
model.start_prob_ = np.array(frequency_list)
model.transmat_ = np.array(transitions)

integer_array = integer_array.reshape(-1,1)
model.fit(integer_array)

integer_list 是我的整数列表,这是我的训练数据。如果我随后尝试按如下方式运行 predict_proba 函数,则会收到以下错误:

base._BaseHMM.predict_proba(integer_array, None)
---------------------------------------------------------------------------
AttributeError                            Traceback (most recent call last)
<ipython-input-54-62c5bedf3e8a> in <module>
----> 1 base._BaseHMM.predict_proba(integer_list, None)

D:\Anaconda\lib\site-packages\hmmlearn\base.py in predict_proba(self, X, lengths)
    390             State-membership probabilities for each sample from ``X``.
    391         """
--> 392         _, posteriors = self.score_samples(X, lengths)
    393         return posteriors
    394 

AttributeError: 'np.array' object has no attribute 'score_samples'

有谁知道如何解决这个问题?我已经尝试将我的数组转换为列表,但这会产生类似的错误。

4

1 回答 1

1

调用应该是

model.predict_proba(integer_array, None)

这是语法糖

base._BaseHMM.predict_proba(model, integer_array, None)

注意模型作为self参数传递。

于 2020-09-11T06:06:02.770 回答