Rozumiem więc, że kiedy trenujesz HMM do klasyfikacji, standardowe podejście to:
- Rozdziel swoje zestawy danych na zestawy danych dla każdej klasy
- Wytrenuj jeden HMM na klasę
- Na zestawie testowym porównaj prawdopodobieństwo każdego modelu w celu sklasyfikowania każdego okna
Ale jak mam trenować HMM w każdej klasie? Czy po prostu łączę dane dotyczące jednej klasy razem? Ale czy dane szeregów czasowych nie mają być sekwencyjne - a jeśli to zrobię, to mówię, że niektóre punkty danych są kolejne, gdy nie są?
Aby być bardziej konkretnym, mam pewne dane EEG, które są macierzą 96xT, gdzie mam 96 wektorów cech, które są gęstościami widmowymi mocy różnych częstotliwości z różnych kanałów, a T jest długością czasu sygnału (przy pewnej częstotliwości próbkowania)
Można to podzielić na okna, które znam z protokołu eksperymentalnego (dane są oznaczone), dzięki czemu mogę zebrać razem zestawy macierzy 96 * t dla każdej klasy. Gdzie t jest mniejsze niż T i oznacza rozmiar każdego okna.
Jak mam trenować HMM na tych danych? Jeśli to pomaga, próbuję użyć zestawu narzędzi pmtk3, ale otwieram się na cokolwiek naprawdę - musi on być w stanie poradzić sobie z obserwacjami o wartości rzeczywistej, ponieważ gęstości widmowe mocy są ciągłe, a nie dyskretne (domyślny zestaw narzędzi MATLAB może sobie poradzić z dyskretnymi obserwacjami).
Celem jest możliwość zaklasyfikowania okien danych EEG do danego stanu psychicznego po przeszkoleniu na podstawie oznaczonych danych. Jest to problem z interfejsem mózg-komputer korzystający z danych Berlin BCI Competition .