2017-10-20 24 views
0

멍청한 질문에 대한 사과 - 총 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, localerank 열을 인코딩의 datesite 열을 제거를 사용하여 입력으로 rank 내 모델을 학습 sessionslogins을 예측하십시오. 결과는보기에 좋았지 만 알고 싶었습니다.

  1. 어떻게 이것을 적절한 시계열 예측으로 변환 할 수 있습니까? 문제가 감독 된 학습 문제로 재구성 된 some examples by Jason Brownlee을 보았습니다. 그러나 잠재적으로 수백만 행의 교육 데이터가 있으므로이 방법은 효과가 없습니다. 카테고리/로케일/유형별로 교육 데이터를 그룹화하고, 날짜별로 정렬하고, 특정 카테고리/로케일/유형 조합에 대해 T 일째 테스트를 위해 교육을 위해 하루 T-1까지 데이터를 사용할 수 있습니다. 그러나이 접근법은 매우 비쌉니다 이러한 카테고리/로케일/유형 조합이 수천 가지가 될 수 있으므로

  2. 이동 평균을 사용하여 성능을 향상시키는 방법에 대해 읽었습니다. 트레이닝 세트에서 sessionslogins의 이동 평균을 계산하는 것은 간단하지만 종속 변수이므로 테스트 세트에서 이것을 어떻게 캡처합니까?

  3. 이 작업에는 RF보다 우수한 도구가 있습니까? 당신이 shift 같은 벡터화 NumPy와 작업을 사용하는 경우

답변

0

내가 링크 된 블로그 게시물의 방법을 사용는 데이터 변환은 문제가되지 않습니다. 당신은 당신이 단지 각 그룹의 평균 숫자를 calcuating하고, 날짜를 무시하면 그런데

, 당신은 매우 멋진 피벗 테이블 ;-)

+0

감사를 구축하는 임의의 숲을 사용하는 즉 있지만, 'shift '메소드는 각 행에 대해 하나의 컬럼을 작성하는 것과 관련이있다. 거기에 100 만 개가 넘는 행이 있음을 확인하면 그만큼 효율성이 떨어질 것입니다. – Craig

+0

각 행에 대해 열을 지정하지 않으면 창 크기 내에서 몇 단계 만 수행하면됩니다 (링크 된 블로그 게시물은 각 행에 대해 이전 시간 단계를 사용합니다) – maxymoo