So I understand that when you train HMM's for classification the standard approach is:
- Separate your data sets into the data sets for each class
- Train one HMM per class
- On the test set compare the likelihood of each model to classify each window
But how do I train the HMM on each class? Do I just concatenate the data pertaining to one class together? But isn't the time series data meant to be sequential - and if I do that then I am saying that some data points are consecutive when they are not?
To be more concrete I have some EEG data which is a 96xT matrix where I have 96 feature vectors which are the power spectral densities of different frequencies from different channels and T is the length of time of the signal (at some sampling rate)
This can be divided into windows which I know from the experimental protocol (the data is labelled) and so I can gather together sets of 96*t matrices for each class. Where t is less than T and denotes the size of each window.
How do I then train the HMM on this data? If it helps I am trying to use the pmtk3 toolkit, but I open to using anything really - it just has to be able to deal with real-valued observations as the power spectral densities are continuous not discrete (the default MATLAB toolbox can only deal with discrete observations).
The aim is to be able to classify EEG data windows to a given mental state having trained upon the labelled data. It is a brain-computer interface problem using the Berlin BCI Competition data.