분석시각화 대회 코드 공유 게시물은
내용 확인 후
좋아요(투표) 가능합니다.
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가지 전략들이 있습니다.
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번째 온도 예측 간의 종속성은 무시하게 됩니다.
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))
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번 전략을 혼합하는 것은 각 전략의 한계를 극복하는 방법입니다.
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한 방법 간의 차이를 더욱 명확하게 볼 수 있도록 코드 공유로 찾아오도록 하겠습니다.
데이콘(주) | 대표 김국진 | 699-81-01021
통신판매업 신고번호: 제 2021-서울영등포-1704호
서울특별시 영등포구 은행로 3 익스콘벤처타워 901호
이메일 dacon@dacon.io | 전화번호: 070-4102-0545
Copyright ⓒ DACON Inc. All rights reserved
수고하셨습니다.