単純な機械学習の質問. おそらくこれを解決するための多くの方法:
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 ライブラリは便利ですが、何でも構いません。
更新:各ラウンドで複数のイベントが同時に発生する場合はどうでしょうか。それは解決策を変えますか?