Daher verstehe ich, dass der Standardansatz beim Trainieren von HMMs für die Klassifizierung wie folgt lautet:
- Teilen Sie Ihre Datensätze in die Datensätze für jede Klasse auf
- Trainiere ein HMM pro Klasse
- Vergleichen Sie im Testset die Wahrscheinlichkeit, mit der jedes Modell die einzelnen Fenster klassifiziert
Aber wie trainiere ich das HMM in jeder Klasse? Verknüpfe ich nur die Daten einer Klasse miteinander? Aber sollen die Zeitreihendaten nicht sequentiell sein - und wenn ich das tue, sage ich, dass einige Datenpunkte aufeinanderfolgend sind, wenn dies nicht der Fall ist?
Genauer gesagt habe ich einige EEG-Daten, die eine 96xT-Matrix sind, wobei ich 96 Merkmalsvektoren habe, die die Leistungsspektraldichten verschiedener Frequenzen von verschiedenen Kanälen sind und T die Zeitdauer des Signals ist (bei einer bestimmten Abtastrate).
Dies kann in Fenster unterteilt werden, die ich aus dem Versuchsprotokoll kenne (die Daten sind beschriftet), und so kann ich Sätze von 96 * t-Matrizen für jede Klasse zusammenstellen. Wobei t kleiner als T ist und die Größe jedes Fensters bezeichnet.
Wie trainiere ich dann das HMM mit diesen Daten? Wenn es hilft, versuche ich, das pmtk3-Toolkit zu verwenden, aber ich bin offen dafür, wirklich alles zu verwenden - es muss nur in der Lage sein, mit real bewerteten Beobachtungen umzugehen, da die spektralen Leistungsdichten kontinuierlich und nicht diskret sind (die standardmäßige MATLAB-Toolbox kann nur damit umgehen mit diskreten Beobachtungen).
Ziel ist es, EEG-Datenfenster in einen bestimmten mentalen Zustand einordnen zu können, der auf die gekennzeichneten Daten trainiert hat. Es handelt sich um ein Problem mit der Schnittstelle zwischen Gehirn und Computer, bei dem die Daten des Berliner BCI-Wettbewerbs verwendet werden .