1

我正在使用Pomegranate 库 来实现 HMM。我正在按照文档所说的使用该from_samples函数,该函数说参数之一labels应该是:

An array of state labels for each sequence. This is only used in ‘labeled’ training. If used this must be comprised of n lists where n is the number of sequences to train on, and each of those lists must have one label per observation. Default is None.

我的代码是:

model = HiddenMarkovModel('Gestures').from_samples(
        NormalDistribution, 3, training, labels=[0, 1, 2], algorithm='labeled')

我得到错误:

ValueError: The truth value of an array with more than one element is ambiguous. Use a.any() or a.all()

这没有意义,因为我正在输入一个数组,但我想它认为我应该输入一个布尔值?

4

1 回答 1

0

我想你可能误解了文档。labels必须是您的training集合长度的标签列表(而不是现在看起来的状态数)。然后,如果您的训练集包含N序列,则传递的列表labels的长度应为 N。

您没有精确说明您的训练集是什么,但是 2 个变量的长度不一致可能会引发这种错误(尽管我不是 Python 专家)。

于 2017-08-17T21:53:10.660 回答