Простой вопрос машинного обучения. Вероятно, существует множество способов решить эту проблему:
Существует бесконечный поток из 4 возможных событий:
'event_1', 'event_2', 'event_4', 'event_4'
События не приходят в совершенно случайном порядке. Мы будем предполагать, что существуют некоторые сложные шаблоны порядка, в котором происходит большинство событий, а остальные события просто случайны. Мы не знаем закономерности заранее.
После того, как каждое событие получено, я хочу предсказать, какое будет следующее событие, основываясь на порядке поступления событий в прошлом. Итак, мой вопрос: Какой алгоритм машинного обучения я должен использовать для этого предиктора?
Затем предсказателю сообщают, каким было следующее событие:
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)
Возникает вопрос о том, как долго история должна поддерживаться предиктором, поскольку поддержание бесконечной истории будет невозможно. Я оставлю это до вас, чтобы ответить. Ответ не может быть бесконечным, хотя для практичности.
Так что я полагаю, что предсказания должны быть сделаны с какой-то скользящей историей. Следовательно, добавление нового события и истечение срока действия старого события должно быть довольно эффективным и не требовать перестройки всей модели предиктора, например.
Специальный код, вместо исследовательских работ, добавил бы для меня огромное значение к вашим ответам. Библиотеки Python или C хороши, но все подойдет.
Обновление: А что, если в каждом раунде одновременно может происходить более одного события? Это меняет решение?