Portanto, entendo que, quando você treina HMMs para classificação, a abordagem padrão é:
- Separe seus conjuntos de dados nos conjuntos de dados para cada classe
- Treine um HMM por classe
- No conjunto de testes, compare a probabilidade de cada modelo para classificar cada janela
Mas como eu treino o HMM em cada classe? Apenas concatenar os dados pertencentes a uma classe juntos? Mas os dados das séries temporais não devem ser seqüenciais - e se eu fizer isso, estou dizendo que alguns pontos de dados são consecutivos quando não são?
Para ser mais concreto, tenho alguns dados de EEG, que são uma matriz de 96xT, onde tenho 96 vetores de características que são as densidades espectrais de potência de diferentes frequências de diferentes canais e T é a duração do sinal (em alguma taxa de amostragem)
Isso pode ser dividido em janelas que eu conheço do protocolo experimental (os dados são rotulados) e para que eu possa reunir conjuntos de matrizes de 96 * t para cada classe. Onde t é menor que T e indica o tamanho de cada janela.
Como eu treino o HMM nesses dados? Se ajudar, estou tentando usar o kit de ferramentas pmtk3, mas estou aberto a usar qualquer coisa realmente - ele só precisa lidar com observações de valor real, pois as densidades espectrais de potência são contínuas e não discretas (a caixa de ferramentas MATLAB padrão só pode lidar com observações discretas).
O objetivo é ser capaz de classificar as janelas de dados do EEG em um determinado estado mental, tendo treinado os dados rotulados. É um problema de interface cérebro-computador usando o dados Berlin BCI Competition .