時系列予測パフォーマンスの評価


9

いくつかの時間変数でトレーニングされた動的単純ベイズモデルがあります。モデルの出力はの予測でありP(Event) @ t+1、それぞれで推定されますt

P(Event)対のプロットtimeは、次の図に示すとおりです。この図では、黒い線P(Event)が私のモデルで予測されたものを表しています。水平な赤い線は、イベント出来事の事前確率を表します。点線は、時系列での(5つの)イベント発生を表します。

理想的には、P(Event)イベントを観察する前に予測ピークを確認し、イベントの見込みがない場合はゼロに近いままにしたいです。

P(イベント)対時間グラフ

イベントの発生を予測する上で、モデル(黒い線)のパフォーマンスを報告できるようにしたいと思います。私のモデルと比較する明らかな候補は、イベントの事前確率(赤い線)です。これは、予測子として使用した場合、すべてに対して同じ確率値を予測します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);

意味のある損失関数を課すことができると思いますか?あなたが正しく/誤って推測することでどのくらい得/失ったかを言う方法はありますか?
ジェームズ

私はこれを考えましたが、希望どおりに低または高パフォーマンスを達成するために微調整できる任意の損失関数を発明したくありません。
Zhubarb 2014

回答:


1

ROCカーブを作成できます。0と1の間の特定のpの値について、予測された確率がpより大きい場合にイベントが発生すると予測します。次に、ROC曲線上の単一点を与えるTPRとFPRを計算します。ゼロと1の間でpを変化させることにより、曲線全体が得られます。たとえば、p <0.005の場合、事前ベースの予測子は常にイベントが常に発生すると言います。

詳細については、以下を参照してください。

http://en.wikipedia.org/wiki/Receiver_operating_characteristic


AUCがこれらの曲線の要約統計として利用できることを追加するだけです。
2014年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.