time series data의 cross validation에 대한 여러가지 고찰

time series data는 일반적인 cross validation으로 검증을 수행해도 무리가 없을까?

 

일반적인 cross validation을 수행하면 과거 미래 데이터가 무작위로 섞일 것이다.

 

미래를 예측하기 위해서는 그 이전의 정보를 사용하여 예측하는 것이 기본인데 무작위로 뒤섞인다면 당연히 예측 성능이 떨어질 것이다.

 

 

1. ordering by time

 

기본적인 방법 중 하나는 데이터를 시간 순서대로 정렬하고 validation set을 train set보다 미래에 있는 것으로 선택하고

 

test set도 validation set, train set보다 미래에 있는 데이터를 선택하는 것이다.

 

이게 가장 흔하고 자주 사용하는 방법같다

 

그러나 이 방법이 안좋은 점은 test set은 무작위로 선택되어야 정확한 평가가 가능한데 그렇지 않았다는 점이다.

 

 

2. nested cross validation

 

이것을 피하기 위해 nested cross validation을 사용하여 inner loop에서는 무작위로 데이터 set을 나눠서 평가하는 방법이 있지만

 

outer loop에서는 여전히 order를 지켜가며 나눠야하는데 무작위로 나누는 k-fold cross validation의 특성상 그럴 수가 없기때문에  좋은 방법까지는 아니다.

 

 

3. day forward chaining

 

어떻게든 무작위로 outer loop에서도 test set을 선택하는 방법을 생각하고자 또 다른 day forward chaining nested cross validation이 제안되었다.

 

예를 들어 5일차 dataset이 있다고 하면 1일 train set, 2일 validation set, 3일 test set을 1-fold,

 

1,2일 train set, 3일 validation set, 4일 test set을 2-fold,

 

1,2,3일 train set, 4일 validation set, 5일을 test set으로 나눈 3-fold를 사용하여 nested cross valdation을 사용한다

 

 

이것도 무작위로 선택한건 아닌것 같은데 내가 이해를 못한건지..

 

 

4. multiple time series data

 

data set이 여러개가 있는 multiple time series data는 어떻게 split을 하면 좋을까?

 

 

regular nested cross validation

 

regular nested cross validation은 예를 들어 2개의 time series A,B가 있다고 하자.

 

A,B 각각의 first half of day에 해당하는 데이터를 train set, 나머지 second half of day에 해당하는 데이터를 test set으로 나눈다.

 

그러나 무작위로 test set이 선택되지 않는 점이 여전히 아쉽다.

 

 

 

population informed nested cross validation

 

population informed nested cross validation은 오직 하나의 time series, 예를 들어 A에서만 train set, validation set, test set으로 ordering 하게 나누고

 

나머지 time series는 전부 train set으로 만드는 방법이다.

 

당연하지만 ordering하게 split하는 time series는 반복적으로 선택하여 반복적으로 검증을 진행한다(k-fold cross validation처럼?)

 

근데 뭐 완벽한 방법이 없듯이 다 장단점이 있는듯? 중요한 점은 time series는 고려해야할 사항이 조금 있다는 것

 

 

 

참고

 

https://towardsdatascience.com/time-series-nested-cross-validation-76adba623eb9

 

Time Series Nested Cross-Validation

This blog post discusses the pitfalls of using traditional cross-validation with time series data. Specifically, we address 1) splitting a…

towardsdatascience.com

 

 

TAGS.

Comments