멍청한 질문에 대한 사과 - 총 n00b 여기.시계열 회귀 - RandomForest
다음과 같은 데이터 세트가 있다고 가정 해 보겠습니다.
date,site,category,locale,type,rank,sessions,logins
01/01/2017,google.com,search,US,free,1,3393093,50000
01/01/2017,google.com,overall,US,free,1,3393093,50000
01/01/2017,yahoo.com,search,US,3,free,core,393093,40000
01/01/2017,yahoo.com,news,US,9,free,393093,40000
01/01/2017,yahoo.com,overall,US,23,free,393093,40000
01/01/2017,wsj.com,news,US,21,free,200000,180000
01/01/2017,wsj.com,news,US,21,subscription,200000,180000
01/01/2017,wsj.com,overall,US,93,free,200000,180000
여기서 rank는 해당 사이트의 Alexa 등급입니다. 가능한 여러 범주 (검색, 전자 메일, 전자 상거래 등)가 있으며 해당 순위는 해당 범주 내의 순위에 해당합니다.
특정 사이트/로케일/계급이 특정 날짜에 대해 세션 및 로그인 수를 예측하려고합니다. 본질적으로이를 다 변수 시계열 회귀 문제로 끓여서 sklearn의 RandomForestRegressor를 사용하고 있습니다.
지금은 모든 시계열 문제로이 문제를 취급하지 않습니다 - 훈련을 위해, 나는 category
, locale
및 rank
열을 인코딩의 date
및 site
열을 제거를 사용하여 입력으로 rank
내 모델을 학습 sessions
및 logins
을 예측하십시오. 결과는보기에 좋았지 만 알고 싶었습니다.
어떻게 이것을 적절한 시계열 예측으로 변환 할 수 있습니까? 문제가 감독 된 학습 문제로 재구성 된 some examples by Jason Brownlee을 보았습니다. 그러나 잠재적으로 수백만 행의 교육 데이터가 있으므로이 방법은 효과가 없습니다. 카테고리/로케일/유형별로 교육 데이터를 그룹화하고, 날짜별로 정렬하고, 특정 카테고리/로케일/유형 조합에 대해 T 일째 테스트를 위해 교육을 위해 하루 T-1까지 데이터를 사용할 수 있습니다. 그러나이 접근법은 매우 비쌉니다 이러한 카테고리/로케일/유형 조합이 수천 가지가 될 수 있으므로
이동 평균을 사용하여 성능을 향상시키는 방법에 대해 읽었습니다. 트레이닝 세트에서
sessions
과logins
의 이동 평균을 계산하는 것은 간단하지만 종속 변수이므로 테스트 세트에서 이것을 어떻게 캡처합니까?이 작업에는 RF보다 우수한 도구가 있습니까? 당신이
shift
같은 벡터화 NumPy와 작업을 사용하는 경우
감사를 구축하는 임의의 숲을 사용하는 즉 있지만, 'shift '메소드는 각 행에 대해 하나의 컬럼을 작성하는 것과 관련이있다. 거기에 100 만 개가 넘는 행이 있음을 확인하면 그만큼 효율성이 떨어질 것입니다. – Craig
각 행에 대해 열을 지정하지 않으면 창 크기 내에서 몇 단계 만 수행하면됩니다 (링크 된 블로그 게시물은 각 행에 대해 이전 시간 단계를 사용합니다) – maxymoo