Multi-Step 시계열 예측을 위한 4가지 전략

2020.11.13 09:45 6,395 Views

Multi-Step 시계열 예측을 위한 4가지 전략




최근 시계열 예측에 관심이 생겨 공부하고 있습니다.

짬짬이 이렇게 공부하며 정리한 것들을 올리고자 합니다.



이번에는 아래 블로그 내용을 번역/참조하였습니다. 이해가 더 쉽도록 제가 조금씩 변형한 부분이 있는데 코멘트 주실 것이나 틀린 부분이 있다면 댓글로 남겨주세요.



참조 블로그: https://machinelearningmastery.com/multi-step-time-series-forecasting/





#-------------------------------------------START-------------------------------------------#





* time step: 예측해야 하는 최소한의 시간 단위(ex. 초, 분, 시, 일, 월 등)

하나의 time step을 예측하는 경우를 one-step 시계열 예측이라고 합니다. 반면, 여러 time step을 예측하는 경우는 ‘multi-step 시계열 예측’이라고 합니다.



우리는 시계열 예측을 할 때 주로 one-step 예측 방법에 관하여 논의합니다. 그러나 이런 식으로 여러 time step을 예측해야 하는 경우는 어떻게 하는 것이 좋을까요? ‘multi-step 시계열 예측’을 할 때 사용할 수 있는 4가지 전략들이 있습니다.


 



1.    Direct multi-step 시계열 예측 전략



Direct multi-step 시계열 예측 전략은 예측하고자 하는 하나의 time step마다 별개의 모델을 생성하는 것입니다.

예를 들어, 1 - 7까지 총 7일 치의 온도 데이터가 있고 8번째 그리고 9번째 온도를 예측해야 한다면


  

Time,   Temperature

1,                       56

2,                       50

3,                       59

4,                       63

5,                       52

6,                       60

7,                       55

  

Time,   Temperature

8,                  ?

9,                  ?



우리는 8번째 온도 예측을 위한 모델을 만들고 9번째 온도를 예측하는 모델을 하나 더 만듭니다.



prediction(t) = model1(obs(t-1), obs(t-2), ..., obs(t-n))
*prediction(t+1) = model2(obs(t-2), obs(t-3), ..., obs(t-n))

 



하나의 time step을 예측하기 위해 하나의 모델만 사용한다면 예측해야 하는 다음 time step의 수는 사소한 것에 비해 연산과 유지 및 관리가 부담됩니다.



다만, time step마다 별도의 모델이 사용되는 direct multi-step 시계열 예측 전략은 8번째 온도 예측과 9번째 온도 예측 간의 종속성은 무시하게 됩니다.


 



2.    Recursive multi-step 시계열 예측 전략



Recursive multi-step 시계열 예측 전략은 one-step 시계열 예측 모델로 여러 날을 예측하는 것입니다. 이전 time-step의 예측된 값이 다음 time-step의 값을 예측하는 데에 input으로써 사용이 됩니다.



1번 전략의 예시와 마찬가지로 8번째와 9번째 온도를 예측할 때 one-step 시계열 예측 모델을 만듭니다. 이 모델은 8번째 온도를 예측하고, 8번째에 예측된 값이 9번째 온도를 예측할 때 input으로 들어가게 됩니다.



prediction(t) = model(obs(t-1), obs(t-2), ..., obs(t-n))
prediction(t+1) = model(prediction(t), obs(t-1), ..., obs(t-n))





3.    Direct-Recursive Hybrid 시계열 예측 전략



Direct-Recursive Hybrid 시계열 예측 전략은 1, 2번 전략의 장점을 합친 방법입니다.

 


예를 들어, 서로 다른 두 개의 모델은 각각 예측하고자 하는 time step을 위해 구성이 먼저 됩니다. 하지만 각 모델은 예측할 때 이전 time step의 예측값을 input 값으로 사용합니다.

 


즉, 첫 번째 모델의 output이 두 번째 모델의 input으로 사용되는 것입니다.

 


prediction(t) = model1(obs(t-1), obs(t-2), ..., obs(t-n))
prediction(t+1) = model2(prediction(t), obs(t-1), ..., obs(t-n))

 


1번과 2번 전략을 혼합하는 것은 각 전략의 한계를 극복하는 방법입니다.

 

 



4.    Multiple Output 시계열 예측 전략



Multiple Output 시계열 예측 전략은 예측해야 하는 시퀀스 전체를 한 번에 예측하는 것입니다.

또다시 온도 예측의 예시를 들어보면, 8번째와 9번째 온도를 예측해야 할 때 우리는 하나의 모델을 가지고 한 번의 연산으로 내일과 모레의 온도를 동시에 예측합니다.

 


prediction(t), prediction(t+1) = model(obs(t-1), obs(t-2), ..., obs(t-n))



Multiple Output 시계열 예측 전략은 input과 output의 관계와 output들 사이의 관계에 대한 종속 구조를 확인할 수 있기 때문에 훨씬 복잡합니다.


더욱 복잡하다는 것은 학습이 느리고 과적합 문제를 방지하기 위해 더 많은 데이터가 필요하다는 것을 의미하기도 합니다.






다음 번에는 direct과 recursive한 방법 간의 차이를 더욱 명확하게 볼 수 있도록 코드 공유로 찾아오도록 하겠습니다.

 




로그인이 필요합니다
0 / 1000
당쇠
2020.11.13 12:46

수고하셨습니다.