Метки граната HMM: Значение истинности массива с более чем одним элементом неоднозначно.
Я использую библиотеку 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()
что не имеет смысла, так как я ввожу массив, но я думаю, что он думает, что я должен вводить логическое значение?
1 ответ
Я думаю, что вы, возможно, неправильно поняли документацию. labels
должен быть список меток длины вашего training
набор (не из числа состояний, как кажется сейчас). Затем, если ваш тренировочный набор содержит N
последовательности, список передается как labels
должен быть длиной N.
Вы не уточняете, каков ваш тренировочный набор, но несоответствие в длине двух переменных может вызвать такую ошибку (хотя я не эксперт в Python).