시계열 예측 성능 평가


9

몇 가지 시간 변수에 대해 훈련 된 Dynamic Naive Bayes Model이 있습니다. 모델의 결과는 P(Event) @ t+1각각의 추정치 t입니다.

P(Event)vs 의 도표는 time아래 그림에 나와 있습니다. 이 그림에서 검은 선P(Event)내 모델에서 예측 한대로 나타냅니다 . 수평 적색 라인 이벤트 일어나는의 사전 확률을 나타내고; 그리고 점선 수직선은 시계열에 (오) 이벤트 발생을 나타냅니다.

이상적으로, 나는 P(Event)사건을 관찰하기 전에 예측 된 피크 를보고 사건이 없을 때 0에 가깝게 유지하고 싶습니다 .

P (이벤트) 대 시간 그래프

이벤트 발생을 예측하는 데 내 모델 (검은 색 선)이 얼마나 잘 수행되는지보고하고 싶습니다. 내 모델을 비교할 확실한 후보자는 예측 변수로 사용 된 경우 모두에 대해 동일한 확률 값을 예측하는 이전 이벤트 확률 (빨간색 선) t입니다.

이 비교를 달성하기위한 가장 좋은 공식적인 방법 은 무엇입니까 ?

추신 : 저는 현재 아래의 코드대로 (직관적 인) 점수를 사용하고 있습니다. 전체 점수가 낮을수록 더 나은 예측 성능을 나타냅니다. 나는이 점수로 이전을이기는 것이 실제로 어렵다는 것을 알았습니다.

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

의미있는 손실 함수를 적용 할 수 있다고 생각하십니까? 정확하고 부정확하게 추측하여 얼마나 많은 양을 얻거나 잃을지를 말할 수있는 방법이 있습니까?
James

나는 이것을 생각했지만 원하는대로 저 또는 고성능을 달성하기 위해 조정할 수있는 임의의 손실 기능을 발명하고 싶지 않습니다.
Zhubarb

답변:


1

ROC 곡선을 만들 수 있습니다. 0에서 1 사이의 주어진 p 값에 대해 예측 확률이 p보다 크면 이벤트가 발생할 것으로 예상합니다. 그런 다음 ROC 곡선에서 단일 지점을 제공하는 TPR 및 FPR을 계산합니다. p를 0에서 1로 변경하면 전체 곡선을 얻을 수 있습니다. 예를 들어 p <0.005의 경우 사전 기반 예측자는 항상 이벤트가 항상 발생한다고 말합니다.

자세한 내용은 다음을 참조하십시오.

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


AUC를 이러한 곡선에 대한 요약 통계로 사용할 수 있음을 추가하기 만하면됩니다.
추측 :
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.