我有一个对几个时间变量进行训练的动态朴素贝叶斯模型。模型的输出是 的预测P(Event) @ t+1
,在每个 估计t
。
P(Event)
对比图time
如下图所示。在这个图中,黑线代表P(Event)
我的模型所预测的;水平红线代表事件发生的先验概率;垂直虚线表示时间序列上的(五)事件发生。
理想情况下,我希望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);