いくつかの時間変数でトレーニングされた動的単純ベイズモデルがあります。モデルの出力はの予測でありP(Event) @ t+1
、それぞれで推定されますt
。
P(Event)
対のプロットtime
は、次の図に示すとおりです。この図では、黒い線P(Event)
が私のモデルで予測されたものを表しています。水平な赤い線は、イベント出来事の事前確率を表します。縦の点線は、時系列での(5つの)イベント発生を表します。
理想的には、P(Event)
イベントを観察する前に予測ピークを確認し、イベントの見込みがない場合はゼロに近いままにしたいです。
イベントの発生を予測する上で、モデル(黒い線)のパフォーマンスを報告できるようにしたいと思います。私のモデルと比較する明らかな候補は、イベントの事前確率(赤い線)です。これは、予測子として使用した場合、すべてに対して同じ確率値を予測しますt
。
この比較を達成するための最良の正式な方法は何ですか?
PS:私は現在、以下にコード化されている(直感的な)スコアリングを使用しています。スコアが全体的に低いほど、予測パフォーマンスが良いことを示しています。このスコアリングで以前のものを倒すのは実際にはかなり難しいことがわかりました:
# Get prediction performance
model_score = 0; prior_score=0;
for t in range(len(timeSeries)):
if(timeSeries[t]== event): # event has happened
cur_model_score = 1- prob_prediction[t];
cur_prior_score = 1 - prior
else: # no event
cur_model_score = prob_prediction[t] - 0;
cur_prior_score = prior - 0;
model_score = model_score + abs(cur_model_score);
prior_score = prior_score + abs(cur_prior_score);