¿Algoritmo de aprendizaje automático para predecir el orden de los eventos?

Pregunta simple de aprendizaje automático. Probablemente numerosas formas de resolver esto:

Hay uninfinito flujo de 4 eventos posibles:

'event_1', 'event_2', 'event_4', 'event_4'

Los eventos no vienen en orden completamente al azar. Asumiremos que hay algunos patrones complejos en el orden en que entran la mayoría de los eventos, y el resto de los eventos son aleatorios. Sin embargo, no conocemos los patrones con anticipación.

Después de que se reciba cada evento, quiero predecir cuál será el próximo evento en función del orden en que los eventos ocurrieron en el pasado. Entonces mi pregunta es:¿Qué algoritmo de aprendizaje automático debo usar para este predictor?

Luego se le dirá al predictor cuál fue el próximo evento:

Predictor=new_predictor()

prev_event=False
while True:
    event=get_event()
    if prev_event is not False:
        Predictor.last_event_was(prev_event)
    predicted_event=Predictor.predict_next_event(event)

Se plantea la cuestión de cuánto tiempo debe mantener el predictor, ya que no será posible mantener un historial infinito. Te dejaré esto para que respondas. Sin embargo, la respuesta no puede ser infinita por razones prácticas.

Así que creo que las predicciones tendrán que hacerse con algún tipo de historia continua. Por lo tanto, agregar un nuevo evento y expirar un evento anterior debería ser bastante eficiente y no requerir la reconstrucción de todo el modelo predictor, por ejemplo.

Un código específico, en lugar de trabajos de investigación, me agregaríainmenso valor a sus respuestas Las bibliotecas Python o C son buenas, pero cualquier cosa servirá.

Actualizar: Y qué pasa si más de un evento puede suceder simultáneamente en cada ronda. ¿Eso cambia la solución?

Respuestas a la pregunta(5)

Su respuesta a la pregunta