ฉันมี Dynamic Naive Bayes Model ที่ได้รับการฝึกอบรมเกี่ยวกับตัวแปรทางโลกสองสามอย่าง ผลลัพธ์ของตัวแบบคือการทำนายP(Event) @ t+1
โดยประมาณที่แต่ละt
ตัว
พล็อตของP(Event)
แทนที่จะtime
เป็นได้รับในรูปด้านล่าง ในรูปนี้เส้นสีดำแสดงถึงP(Event)
แบบจำลองที่ทำนายไว้ เส้นสีแดงในแนวนอนหมายถึงความน่าจะเป็นสิ่งที่เกิดขึ้นก่อนเหตุการณ์; และเส้นแนวตั้งประเป็นตัวแทนเหตุการณ์ที่เกิดขึ้นห้าเหตุการณ์ในอนุกรมเวลา
โดยหลักการแล้วฉันต้องการเห็นP(Event)
จุดสูงสุดที่คาดการณ์ไว้ก่อนที่จะสังเกตเหตุการณ์ใด ๆ และอยู่ใกล้กับศูนย์เมื่อไม่มีโอกาสของเหตุการณ์
ฉันต้องการรายงานว่าแบบจำลองของฉัน (เส้นสีดำ) ทำงานได้ดีเพียงใดในการทำนายเหตุการณ์ที่เกิดขึ้น ผู้สมัครที่ชัดเจนที่จะเปรียบเทียบรูปแบบของฉันที่มีคือความน่าจะเป็นของเหตุการณ์ก่อน (เส้นสีแดง) ซึ่งหากใช้เป็น predictor- 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);