[정보TALK] 모델 평가(2)

2022.02.13 12:54 1,695 Views

전체 토크제목 토크 내용 안녕하세요! '분데데분'입니다. 

'모델 평가(1)'에 이어 '시계열 데이터 모델 평가'에 대해 작성해보려 합니다. 

[모델 평가(1) https://dacon.io/forum/405946


'본 포스팅은 데이콘 서포터즈 '데이크루 1기' 활동의 일환입니다.'

.

.

 시계열 데이터 검증 단순히 데이터를 랜덤 분할하면 검증 데이터와 같은 기간의 데이터로 학습할 수 있습니다. 

시계열 데이터에서는 시점상 가까운 데이터는 비슷한 경향을 지닐 때가 많습니다.

 따라서 Train Set과 Valid Set가 시간상 비슷한 데이터가 섞이면 모델 성능을 과대평가할 위험성이 커지므로 각별히 주의하여야 합니다.


 [1] 시계열 데이터의 Hold-Out 검증

Test Set 데이터와 가장 가까운 기간을 Valid Set으로 삼는 방법입니다. 

 

Test Set 데이터에 가장 가까운 기간의 데이터를 Valid Set으로 둠으로써 Test Set에 대한 예측 성능이 높아지길 기대합니다. 

'시점이 가까운 데이터일수록 예측할 데이터의 경향을 더 가깝게 반영한다'는 가정을 두고 진행합니다. 


그런데, 데이터가 주기성을 가진다면? 

예를 들어 1년의 주기를 가질 때면 1년 전 기간을 Valid Set으로 설정하는 것이 나을 수 있습니다. 

(어느 경우에서든 Test Set 데이터를 예측하기 위해 가장 가까운 데이터를 활용하여 학습에 사용하지 않는다는 건, 매우 아까운 일인 것 같습니다.) 


단점은 있습니다. 

1. Test Set을 예측하기 위해서 가장 가까운 데이터를 Valid Set으로 두었는데, Test Set 밖의 기간에도 적절히 예측할 수 있는가? 

2. Valid Set의 수가 부족한 경우에도 높은 성능을 기대할 수 있는가? 


이러한 단점을 보완하기 위해 나온, 교차 검증을 봅시다. 


[2] 시계열 데이터의 교차 검증

 Train Set 데이터와 Test Set 데이터가 시간 기준으로 분할된 경우에 Test Set 데이터를 예측하는 모델은 그보다 과거 데이터로 학습하여 구현하므로

검증에서도 마찬가지로 과거 데이터에서 미래 데이터를 예측하는 상황을 재현합니다. 


제공된 Train Set 데이터의 처음부터 지정할 때는 각 Fold마다 Train Set 데이터의 길이가 다른 것을 볼 수 있습니다.

 위처럼, 처음부터 지정하는 경우가 있지만 Valid Set 데이터 직전의 1년간으로 지정하는 방법도 있습니다. 

홀드아웃 검증을 보완해서 교차검증을 내놓았는데, 단점은 없는걸까요? 

1. 한 시점의 오래된 데이터를 Valid Set으로 삼으면 해당 Valid Set보다 과거의 Train Set을 쓸 수 있으니, Train Set 데이터가 적어지지 않는가? 

2.오래된 데이터라면 Test Set 데이터와 많이 다르진 않는가? 


[3] 시계열 데이터 검증의 주의점 

시계열 데이터는 문제의 설계나 데이터 성질, 분할되는 방법에 따라서 수행할 검증이 달라집니다. 대회에서는 특수한 검증이 유효할 때도 있습니다. 


또한, 특징 생성에도 주의해주어야 합니다. 

Test Set 데이터에 이용할 수 있는 정보가 무엇인지를 알아야 하고

Valid Set 데이터에 대해서도 종합적인 조건으로 특징을 생성하지 않으면 해당 데이터에 과적합이 일어날 수 있습니다

.

.

.

기존 데이터 검증과 달리 시계열 데이터 검증에 익숙치 않아, 여전히 어려운 부분이 많은 것 같습니다. 

도움이 된 시계열 자료를 공유합니다.

https://otexts.com/fppkr/graphics-time-plots.html 


시계열에 관한 부분을 조금 더 공부해서 좋은 정보를 가지고 오겠습니다. 

이상으로 글을 마치겠습니다!