예, 역 테스팅이나 롤링 예측을 사용하는 것이 일반적입니다. 이전 N 시간 기간 또는 그 이후의 기간을 모두 N까지 교육 한 다음 기간 N + k (k> = 1)에서 테스트합니다), 또는 미래의 기간에 대한 테스트도 가능합니다. (예 : 지난 60 개월의 데이터를 교육 한 후 다음 12 개월을 예측). 그러나 세부 사항은 실제로 사용중인 모델과 문제 도메인에 따라 다릅니다. Rob Hyndman은 a concrete example을 주며 "kaggle contest time series data cross validation"을 검색하면 더 많은 것을 찾을 수 있습니다.
어떤 경우에는 시간별로 계층화 된 임의의 분할을 수행하는 것이 좋습니다. 그런 다음 기차 분리에 대해 위에서 설명한대로 롤링 교육과 CV 평가를 수행하고 무작위 테스트 홀드 아웃에 대한 롤링 테스트 평가를 별도로 수행합니다. 어떤 경우에는
, 당신은 시간이 또 다른 특징 값입니다 일반 임의 CV (종종 많은 설계 시간 기능으로 인코딩 같은 cos(hour_of_day % 24)
, sin(hour_of_day % 24)
, cos(hour_of_week % 168)
등)을 수행 멀리 얻을 수 있습니다. 이것은 XGBoost와 같은 모델에서 더 잘 작동하는 경향이있어서 모델이 기차/테스트 요법으로 인코딩하는 대신 데이터의 시간 의존성을 발견 할 수 있습니다.
고맙습니다 :) 두 번째 및 세 번째 단락에 대해 궁금합니다. 일부 교육 데이터가 테스트 날짜 뒤의 날짜에서 올 수 있지만 때때로 날짜 정보를 무시하고 직접 cv 할 수 있다고 생각합니까? 그러면 어떤 시나리오에서이 작업을 수행 할 수 있고 여전히 cv 결과를 믿을 수 있습니까? – linpingta
모든 관측치가 완전히 독립적 일 때마다이 작업을 수행하는 것이 안전하다고 생각합니다. (그렇다면 시계열과 다르게 날짜 속성이있는 데이터 만 있습니다.) 현재 관측치가 이전 데이터와 관련이 있거나 영향을받는 경우에는 날짜를 무시하면 누수가 발생합니다. –