Đánh giá hiệu suất dự đoán chuỗi thời gian


9

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.

P (Sự kiện) so với Biểu đồ thời gian

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);

Bạn có nghĩ rằng bạn có thể áp đặt một chức năng mất có ý nghĩa? Có cách nào để nói bạn được / mất bao nhiêu bằng cách đoán đúng / không chính xác?
James

Tôi đã nghĩ về điều này, nhưng tôi không muốn phát minh ra một hàm mất tùy ý mà tôi có thể điều chỉnh để đạt được hiệu suất thấp hoặc cao như tôi muốn.
Zhubarb

Câu trả lời:


1

Bạn có thể tạo một đường cong ROC. Đối với giá trị p đã cho từ 0 đến 1, bạn dự đoán rằng sự kiện sẽ xảy ra nếu xác suất dự đoán lớn hơn p. Sau đó, bạn tính toán TPR và FPR, cung cấp cho bạn một điểm duy nhất trên đường cong ROC. Bằng cách thay đổi p giữa 0 và một, bạn có được toàn bộ đường cong. Ví dụ: với p <0,005, người dự đoán dựa trên trước sẽ luôn nói rằng sự kiện sẽ xảy ra mọi lúc.

Để biết thêm, xem:

http://en.wikipedia.org/wiki/Receiver_operating_characteristic


Chỉ cần thêm rằng AUC có sẵn như là một thống kê tóm tắt cho các đường cong này.
phỏng đoán
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.