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 .
quelle
Antworten:
Sie haben bei reddit erwähnt, dass Sie zögerten, jeder Klasse einen einzelnen Status zuzuweisen. Hast du das versucht? Es funktioniert möglicherweise nicht so schlecht, wie Sie denken. Auch in diesem Fall ist das Schätzproblem wesentlich einfacher. Das Abschätzen der Übergangswahrscheinlichkeiten ist einfach, Sie zählen nur im Wesentlichen. Darüber hinaus können Sie die Emissionswahrscheinlichkeiten für jeden Zustand anhand der beobachteten Daten und der entsprechenden Klasse anpassen, wobei die zeitlichen Aspekte ignoriert werden.
Zuletzt können Sie zu einem Unterscheidungsmodell wie einem bedingten Zufallsfeld wechseln. Mithilfe eines Unterscheidungsmodells können Sie auf einfache Weise komplexere Features integrieren und das vorliegende Problem direkter angehen (Schätzung der bedingten Dichten). Dies ist wahrscheinlich, was ich zuerst versuchen würde.
quelle