J'ai un modèle dynamique de Naive Bayes formé sur quelques variables temporelles. La sortie du modèle est la prédiction de P(Event) @ t+1
, estimée à chacun t
.
L'intrigue de P(Event)
versus time
est indiquée dans la figure ci-dessous. Dans cette figure, la ligne noire représente P(Event)
comme prévu par mon modèle; la ligne rouge horizontale représente la probabilité antérieure que l'événement se produise; et les lignes verticales en pointillés représentent les (cinq) événements survenus sur la série chronologique.
Idéalement, je souhaite voir le P(Event)
pic prévu avant d'observer les événements et rester proche de zéro lorsqu'il n'y a aucune perspective d'événement.
Je veux pouvoir signaler la performance de mon modèle (la ligne noire) pour prédire les événements. Un candidat évident pour comparer mon modèle est la probabilité d'événement antérieure (la ligne rouge) qui, si elle est utilisée comme prédicteur, prédirait la même valeur de probabilité pour tous t
.
Quelle est la meilleure méthode formelle pour réaliser cette comparaison?
PS: J'utilise actuellement le score (intuitif) tel que codé ci-dessous, où un score global plus bas indique de meilleures performances de prédiction. J'ai trouvé qu'il est en fait assez difficile de battre le précédent avec ce score:
# 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);