Tôi có Mô hình Naive Bayes năng động được đào tạo về một vài biến thời gian. Đầu ra của mô hình là dự đoán P(Event) @ t+1
, ước tính ở mỗi t
.
Cốt truyện của P(Event)
vs. time
được đưa ra trong hình dưới đây. Trong hình này, đường màu đen thể hiện P(Event)
như dự đoán của mô hình của tôi; các đường đỏ ngang đại diện cho khả năng trước khi sự kiện xảy ra; và các đường thẳng đứng chấm chấm biểu thị (năm) sự kiện xảy ra trên chuỗi thời gian.
Lý tưởng nhất, tôi muốn thấy P(Event)
đỉnh dự đoán trước khi quan sát bất kỳ sự kiện nào và vẫn gần bằng không khi không có triển vọng của một sự kiện.
Tôi muốn có thể báo cáo mô hình của tôi (đường màu đen) hoạt động tốt như thế nào trong việc dự đoán các sự kiện xảy ra. Một ứng cử viên rõ ràng để so sánh mô hình của tôi với xác suất trước của sự kiện (đường màu đỏ), được sử dụng như một công cụ dự đoán - sẽ dự đoán cùng một giá trị xác suất cho tất cả t
.
Là những gì phương pháp chính thức tốt nhất để đạt được sự so sánh này?
PS: Tôi hiện đang sử dụng cách tính điểm (trực quan) như được mã hóa dưới đây, trong đó điểm tổng thể thấp hơn cho thấy hiệu suất dự đoán tốt hơn. Tôi thấy rằng thực sự khá khó khăn để đánh bại trước khi ghi điểm này:
# 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);