Итак, я понимаю, что когда вы готовите HMM для классификации, стандартный подход:
- Разделите ваши наборы данных на наборы данных для каждого класса
- Тренируйте один HMM в классе
- На тестовом наборе сравните вероятность каждой модели для классификации каждого окна
Но как мне тренировать HMM в каждом классе? Должен ли я просто объединить данные, относящиеся к одному классу вместе? Но разве данные временного ряда не должны быть последовательными - и если я сделаю это, то скажу, что некоторые точки данных являются последовательными, когда их нет?
Чтобы быть более конкретным, у меня есть некоторые данные ЭЭГ, которые представляют собой матрицу 96xT, где у меня есть 96 векторов признаков, которые представляют собой спектральные плотности мощности разных частот из разных каналов, а T - это длительность сигнала (при некоторой частоте дискретизации).
Это можно разделить на окна, которые я знаю из экспериментального протокола (данные помечены), и поэтому я могу собрать наборы из 96 * t матриц для каждого класса. Где t меньше T и обозначает размер каждого окна.
Как мне затем обучить HMM на этих данных? Если это помогает, я пытаюсь использовать инструментарий pmtk3, но я открыт для использования чего-то действительно - он просто должен иметь возможность иметь дело с реальными наблюдениями, поскольку спектральные плотности мощности непрерывны, а не дискретны (стандартный набор инструментов MATLAB может иметь дело только с с дискретными наблюдениями).
Цель состоит в том, чтобы иметь возможность классифицировать окна данных ЭЭГ для данного психического состояния, обучаясь на помеченных данных. Это проблема интерфейса мозг-компьютер с использованием данных Берлинского конкурса BCI .