Quindi capisco che quando si addestrano gli HMM per la classificazione l'approccio standard è:
- Separare i set di dati nei set di dati per ogni classe
- Addestra un HMM per classe
- Sul set di test confrontare la probabilità di ciascun modello di classificare ciascuna finestra
Ma come posso addestrare l'HMM su ogni classe? Concatengo solo i dati relativi a una classe insieme? Ma i dati delle serie temporali non sono pensati per essere sequenziali - e se lo faccio, allora sto dicendo che alcuni punti dati sono consecutivi quando non lo sono?
Per essere più concreti ho alcuni dati EEG che sono una matrice 96xT in cui ho 96 vettori di caratteristiche che sono le densità spettrali di potenza di frequenze diverse da canali diversi e T è la lunghezza del tempo del segnale (a una certa frequenza di campionamento)
Questo può essere diviso in finestre che conosco dal protocollo sperimentale (i dati sono etichettati) e quindi posso raccogliere insieme matrici da 96 * t per ogni classe. Dove t è inferiore a T e indica la dimensione di ciascuna finestra.
Come posso quindi addestrare l'HMM su questi dati? Se mi aiuta, sto cercando di usare il toolkit pmtk3, ma apro l'uso di qualsiasi cosa in realtà: deve solo essere in grado di gestire osservazioni con valori reali poiché le densità spettrali di potenza sono continue e non discrete (la casella degli strumenti MATLAB predefinita può gestire solo con osservazioni discrete).
Lo scopo è quello di essere in grado di classificare le finestre dei dati EEG in base a un determinato stato mentale dopo aver studiato i dati etichettati. Si tratta di un problema di interfaccia cervello-computer che utilizza i dati della competizione BCI di Berlino .