Saya memiliki Dynamic Naive Bayes Model yang dilatih pada beberapa variabel temporal. Output dari model adalah prediksi P(Event) @ t+1
, diperkirakan masing-masing t
.
Plot P(Event)
versus time
adalah seperti yang diberikan pada gambar di bawah ini. Dalam gambar ini, garis hitam mewakili P(Event)
seperti yang diprediksi oleh model saya; yang garis merah horisontal merupakan probabilitas sebelumnya dari acara terjadi; dan garis-garis vertikal putus - putus mewakili (lima) kemunculan peristiwa pada deret waktu.
Idealnya, saya ingin melihat P(Event)
puncak yang diprediksi sebelum mengamati peristiwa apa pun dan tetap mendekati nol ketika tidak ada prospek acara.
Saya ingin dapat melaporkan seberapa baik kinerja model saya (garis hitam) dalam memprediksi kejadian acara. Calon yang jelas untuk membandingkan model saya dengan adalah probabilitas kejadian sebelumnya (garis merah), yang -jika digunakan sebagai prediktor- akan memprediksi nilai probabilitas yang sama untuk semua t
.
Apa metode formal terbaik untuk mencapai perbandingan ini?
PS: Saat ini saya menggunakan skor (intuitif) seperti kode di bawah ini, di mana skor keseluruhan yang lebih rendah menunjukkan kinerja prediksi yang lebih baik. Saya menemukan bahwa sebenarnya cukup sulit untuk mengalahkan sebelumnya dengan skor ini:
# 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);