Modelo oculto de Markov para predicción de eventos

9

Pregunta : ¿La configuración a continuación es una implementación sensata de un modelo de Markov oculto?

Tengo un conjunto de datos de 108,000observaciones (tomadas en el transcurso de 100 días) y aproximadamente 2000eventos a lo largo de todo el período de observación. Los datos se parecen a la figura a continuación, donde la variable observada puede tomar 3 valores discretos y las columnas rojas resaltan los tiempos de evento, es decir, :t E[1,2,3]tmi

ingrese la descripción de la imagen aquí

Como se muestra con rectángulos rojos en la figura, he diseccionado { a } para cada evento, tratándolos efectivamente como "ventanas previas al evento".t E - 5tEtE5

Entrenamiento de HMM: planeo entrenar un Modelo de Markov Oculto (HMM) basado en todas las "ventanas previas al evento", utilizando la metodología de secuencias de observación múltiple como se sugiere en la Pg. 273 del artículo de Rabiner . Con suerte, esto me permitirá entrenar un HMM que capture los patrones de secuencia que conducen a un evento.

Predicción de HMM: luego planeo usar este HMM para predecir el en un nuevo día, donde las serán un vector de ventana deslizante, actualizado en tiempo real para contener las observaciones entre el tiempo actual y medida que avanza el día.O b s e r v a t i o n s t t - 5log[P(Observations|HMM)]Osismirvunatyoonortestt-5 5

Espero ver un aumento en el para las que se parecen a las "ventanas previas al evento". En efecto, esto debería permitirme predecir los eventos antes de que sucedan.O b s e r v a t i o n slosol[PAG(OsismirvunatyoonortesEl |HMETROMETRO)]Osismirvunatyoonortes

Zhubarb
fuente
Puede dividir sus datos para construir un modelo (digamos 0.7), luego probar su modelo con los datos restantes. Solo un pensamiento, no soy un especialista en esta área.
Fernando
Si, gracias. Es más la idoneidad de los HMM para la tarea de la que no estoy seguro.
Zhubarb
@ Zhubarb Estoy lidiando con un problema similar y me gustaría seguir su enfoque HMM. ¿Dónde tienes éxito haciendo esto? ¿O finalmente volviste a la regresión logística / SVM, etc.?
Javierfdr
@Javierfdr, terminé sin implementarlo debido a la dificultad de implementación y las preocupaciones que Alto destaca en su respuesta. Esencialmente, los HMM vienen con la carga de tener que construir un modelo generativo extenso, mientras que mi intuición ahora es por el problema en cuestión, uno puede salirse con la suya con un modelo discriminatorio (SVM, Neural Net, etc.) como usted sugiere .
Zhubarb

Respuestas:

3

Un problema con el enfoque que ha descrito es que necesitará definir qué tipo de aumento de es significativo, lo que puede ser difícil ya que P ( O ) siempre será muy pequeño en general. Puede ser mejor entrenar dos HMM, digamos HMM1 para secuencias de observación donde ocurre el evento de interés y HMM2 para secuencias de observación donde el evento no ocurre. Luego, dada una secuencia de observación O , tienes P ( H H M 1 | O )PAG(O)PAG(O)O y lo mismo para HMM2. Entonces puede predecir que el evento ocurrirá si P ( H M M 1 | O )

PAG(HHMETRO1El |O)=PAG(OEl |HMETROMETRO1)PAG(HMETROMETRO1)PAG(O)PAG(OEl |HMETROMETRO1)PAG(HMETROMETRO1)
PAG(HMETROMETRO1El |O)>PAG(HMETROMETRO2El |O)PAG(HMETROMETRO1)PAG(OEl |HMETROMETRO1)PAG(O)>PAG(HMETROMETRO2)PAG(OEl |HMETROMETRO2)PAG(O)PAG(HMETROMETRO1)PAG(OEl |HMETROMETRO1)>PAG(HMETROMETRO2)PAG(OEl |HMETROMETRO2).

Descargo de responsabilidad : lo que sigue se basa en mi propia experiencia personal, así que tómalo como lo que es. Una de las cosas buenas de los HMM es que le permiten lidiar con secuencias de longitud variable y efectos de orden variable (gracias a los estados ocultos). A veces esto es necesario (como en muchas aplicaciones de PNL). Sin embargo, parece que a priori asumió que solo las últimas 5 observaciones son relevantes para predecir el evento de interés. Si esta suposición es realista, entonces puede tener mucha más suerte usando técnicas tradicionales (regresión logística, ingenuo bayes, SVM, etc.) y simplemente usando las últimas 5 observaciones como características / variables independientes. Por lo general, estos tipos de modelos serán más fáciles de entrenar y (en mi experiencia) producirán mejores resultados.

Alto
fuente
pag=losol(PAG(OEl |hmetrometro))pag1=-2504,pag2=-2403,pag3=-2450pag: Elegí 5 como tamaño de ventana arbitrariamente, es probable que sea más largo que eso en una implementación real.
Zhubarb
1
PAG(HMETROMETRO1)
@Berkan En cuanto al tamaño de la ventana, según mi propia experiencia personal, espero que lo que he dicho en este asunto se mantenga para cualquier tamaño de ventana fijo . Obviamente, todas las cosas que he dicho deberán probarse empíricamente para su problema particular.
alto
losol(PAG(HMETROMETRO1))+losol(PAG(OEl |HMETROMETRO1))>?losol(PAG(HMETROMETRO2))+losol(PAG(OEl |HMETROMETRO2))losol(PAG(HMETROMETRO1))losol(PAG(HMETROMETRO1))
losol(PAG(HMETROMETRO1))+losol(PAG(OEl |HMETROMETRO1))>?losol(PAG(HMETROMETRO2))+losol(PAG(OEl |HMETROMETRO2))losol(PAG(HMETROMETRO1))HMETROMETRO1=(5 52,000)/ /108,000