Тож я розумію, що коли ви тренуєте HMM для класифікації, стандартним підходом є:
- Розділіть ваші набори даних на набори даних для кожного класу
- Тренуйте один HMM за клас
- На тестовому наборі порівняйте вірогідність кожної моделі класифікувати кожне вікно
Але як я треную HMM на кожному занятті? Чи просто я об'єдную дані, що відносяться до одного класу разом? Але чи не маються на увазі, що дані часових рядів є послідовними - і якщо я це роблю, то я кажу, що деякі точки даних є послідовними, коли їх немає?
Якщо бути конкретнішим, у мене є деякі дані ЕЕГ, що є матрицею 96xT, де у мене 96 характеристичних векторів, які є спектральною щільністю потужності різної частоти з різних каналів, а T - тривалість часу сигналу (при деякій частоті дискретизації)
Це можна розділити на вікна, які я знаю з експериментального протоколу (дані позначені міткою), і тому я можу зібрати набори матриць 96 * t для кожного класу. Де t менше T і позначає розмір кожного вікна.
Як я тоді треную HMM на цих даних? Якщо це допомагає, я намагаюся використовувати інструментарій pmtk3, але я відкритий для використання будь-чого насправді - він просто повинен мати змогу мати справу з реальними спостереженнями, оскільки спектральні щільності потужності безперервно не дискретні (за замовчуванням MATLAB інструментарій може мати справу лише з дискретними спостереженнями).
Метою є можливість класифікувати вікна даних ЕЕГ до заданого психічного стану, навчаючись на мічених даних. Це проблема інтерфейсу мозок-комп'ютер із використанням даних конкурсу Берлінського ІМТ .