Je comprends donc que lorsque vous formez des HMM à la classification, l'approche standard est la suivante:
- Séparez vos ensembles de données dans les ensembles de données pour chaque classe
- Former un HMM par classe
- Sur l'ensemble de test, comparez la probabilité de chaque modèle de classer chaque fenêtre
Mais comment puis-je former le HMM sur chaque classe? Dois-je simplement concaténer les données relatives à une classe ensemble? Mais les données de séries temporelles ne sont-elles pas censées être séquentielles - et si je le fais, je dis que certains points de données sont consécutifs alors qu'ils ne le sont pas?
Pour être plus concret, j'ai quelques données EEG qui sont une matrice 96xT où j'ai 96 vecteurs de caractéristiques qui sont les densités spectrales de puissance de différentes fréquences de différents canaux et T est la durée du signal (à une certaine fréquence d'échantillonnage)
Cela peut être divisé en fenêtres que je connais du protocole expérimental (les données sont étiquetées) et je peux donc rassembler des ensembles de matrices 96 * t pour chaque classe. Où t est inférieur à T et indique la taille de chaque fenêtre.
Comment puis-je former le HMM sur ces données? Si cela aide, j'essaie d'utiliser la boîte à outils pmtk3, mais je suis ouvert à l'utilisation de tout ce qui est vraiment - il suffit de pouvoir traiter des observations de valeur réelle car les densités spectrales de puissance sont continues et non discrètes (la boîte à outils MATLAB par défaut ne peut traiter que avec observations discrètes).
Le but est de pouvoir classer les fenêtres de données EEG à un état mental donné après avoir été formé sur les données étiquetées. Il s'agit d'un problème d'interface cerveau-ordinateur utilisant les données du concours BCI de Berlin .
la source
Réponses:
Vous avez mentionné sur reddit que vous hésitiez à attribuer un seul état à chaque classe. Avez-vous essayé cela? Cela peut ne pas fonctionner aussi mal que vous le pensez. Le problème d'estimation est également beaucoup plus facile dans ce cas. Estimer les probabilités de transition est simple, il suffit de compter essentiellement. De plus, vous pouvez simplement ajuster les probabilités d'émission pour chaque état en fonction des données observées et de la classe correspondante, en ignorant les aspects temporels.
Enfin, vous pouvez passer à un modèle discriminant comme un champ aléatoire conditionnel. Un modèle discriminant vous permettra d'incorporer facilement des caractéristiques plus complexes et de traiter plus directement le problème en question (estimation des densités conditionnelles). C'est probablement ce que j'essaierais en premier.
la source