2016-10-19 2 views
0

모델 매개 변수 선택을 위해 교차 검증을 통해 항상 모눈 검색을 수행하여 어떤 매개 변수가 다른 매개 변수보다 우수한지 테스트합니다.시계열 데이터에 대한 모델 매개 변수 선택

this one과 같은 일반적인 교육용 데이터는 적합하지만 데이터에 며칠 동안 또는 며칠 동안 재고가있는 것처럼 시간 관계가있는 경우 직접 교차 유효성 검사를 수행하는 것이 잘못 되었습니까?

크로스 유효성 검사는 훈련 데이터에서 임의로 분리 된 kFold를 사용하므로 시계열 데이터의 경우 최근 일 정보가 옛날 교육에 사용됩니다.

내 질문은 매개 변수 선택 또는 시계열 데이터의 교차 유효성 검사를 수행하는 방법입니까?

답변

0

예, 역 테스팅이나 롤링 예측을 사용하는 것이 일반적입니다. 이전 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와 같은 모델에서 더 잘 작동하는 경향이있어서 모델이 기차/테스트 요법으로 인코딩하는 대신 데이터의 시간 의존성을 발견 할 수 있습니다.

+0

고맙습니다 :) 두 번째 및 세 번째 단락에 대해 궁금합니다. 일부 교육 데이터가 테스트 날짜 뒤의 날짜에서 올 수 있지만 때때로 날짜 정보를 무시하고 직접 cv 할 수 있다고 생각합니까? 그러면 어떤 시나리오에서이 작업을 수행 할 수 있고 여전히 cv 결과를 믿을 수 있습니까? – linpingta

+0

모든 관측치가 완전히 독립적 일 때마다이 작업을 수행하는 것이 안전하다고 생각합니다. (그렇다면 시계열과 다르게 날짜 속성이있는 데이터 만 있습니다.) 현재 관측치가 이전 데이터와 관련이 있거나 영향을받는 경우에는 날짜를 무시하면 누수가 발생합니다. –

관련 문제