다음을 통해 공유


AutoML의 예측 방법 개요

이 문서에서는 AutoML이 시계열 데이터를 준비하고 예측 모델을 빌드하는 데 사용하는 방법에 중점을 둡니다. AutoML에서 예측 모델을 학습하는 지침과 예는 시계열 예측을 위한 AutoML 설정 문서에서 찾을 수 있습니다.

AutoML은 여러 방법을 사용하여 시계열 값을 예측합니다. 이러한 방법은 대략 두 가지 범주에 할당할 수 있습니다.

  1. 대상 수량의 과거 값을 사용하여 향후를 예측하는 시계열 모델.
  2. 예측 변수를 사용하여 대상 값을 예측하는 회귀 또는 설명 모델.

예를 들어, 식료품점에서 특정 상표의 오렌지 주스에 대한 일별 수요를 예측하는 문제를 생각해 보세요. $y_t$는 $t$일에 이 브랜드에 대한 수요를 나타냅니다. 시계열 모델은 과거 수요의 일부 함수를 사용하여 $t+1$의 수요를 예측합니다.

$y_{t+1} = f(y_t, y_{t-1}, \ldots, y_{t-s})$.

$f$ 함수에는 과거에 관찰된 수요를 사용하여 조정하는 매개 변수가 있는 경우가 많습니다. $f$가 예측을 위해 사용하는 기록의 양 $s$도 모델의 매개 변수로 간주될 수 있습니다.

오렌지 주스 수요 예의 시계열 모델은 과거 수요에 대한 정보만 사용하므로 충분히 정확하지 않을 수 있습니다. 가격, 요일, 휴일 여부 등 향후 수요에 영향을 미칠 수 있는 다른 많은 요소가 있습니다. 이러한 예측 변수를 사용하는 회귀 모델을 고려합니다.

$y = g(\text{price}, \text{day of week}, \text{holiday})$.

다시 말하지만, $g$에는 일반적으로 AutoML이 수요 및 예측 변수의 과거 값을 사용하여 조정하는 정규화를 제어하는 매개 변수를 포함하여 일련의 매개 변수가 있습니다. 회귀 모델이 동시에 정의된 변수 간의 상관 패턴을 사용하여 예측한다는 점을 강조하기 위해 식에서 $t$를 생략했습니다. 즉, $g$에서 $y_{t+1}$를 예측하려면 $t+1$이 적용되는 요일, 휴일인지 여부, $t+1$일의 오렌지 주스 가격을 알아야 합니다. 처음 두 정보는 달력을 참조하여 항상 쉽게 찾을 수 있습니다. 보통 소매가는 미리 정해져 있기 때문에 오렌지 주스 가격도 하루 전에 알려질 가능성이 높습니다. 그러나 가격은 향후 10일 동안 알려지지 않을 수 있습니다! 이 회귀의 유용성은 예측 범위라고도 하는 예측이 필요한 향후의 거리와 예측 변수의 향후 값을 어느 정도 알고 있는지에 따라 제한된다는 점을 이해하는 것이 중요합니다.

Important

AutoML의 예측 회귀 모델은 사용자가 제공하는 모든 기능이 적어도 예측 범위까지 향후에 알려져 있다고 가정합니다.

AutoML의 예측 회귀 모델은 대상 및 예측 변수의 과거 값을 사용하도록 확장될 수도 있습니다. 그 결과 시계열 모델과 순수 회귀 모델의 특성을 지닌 하이브리드 모델이 탄생했습니다. 과거 수량은 회귀의 추가 예측 변수이며 이를 지연 수량이라고 합니다. 시차의 순서는 값이 알려진 시간을 나타냅니다. 예를 들어, 오렌지 주스 수요 예에 대한 대상의 차수 2 지연의 현재 값은 2일 전에 관찰된 주스 수요입니다.

시계열 모델과 회귀 모델 간의 또 다른 주목할만한 차이점은 예측을 생성하는 방식입니다. 시계열 모델은 일반적으로 재귀 관계로 정의되며 한 번에 하나씩 예측을 생성합니다. 향후의 여러 기간을 예측하기 위해 예측 기간까지 반복하여 이전 예측을 모델에 다시 공급하여 필요에 따라 다음 한 기간 앞 예측을 생성합니다. 반대로 회귀 모델은 모든 예측을 한 번에 생성하는 소위 직접 예측입니다. 재귀 모델은 이전 예측값을 모델에 다시 공급할 때 예측 오류를 합성하기 때문에 직접 예측자가 재귀 예측자보다 선호될 수 있습니다. 시차 함수가 포함되면 AutoML은 회귀 모델이 직접적인 예측자 역할을 할 수 있도록 학습 데이터에 몇 가지 중요한 수정을 가합니다. 자세한 내용은 지연 기능 문서를 참조하세요.

AutoML의 예측 모델

다음 표에는 AutoML에서 구현된 예측 모델과 해당 모델이 속한 범주가 나열되어 있습니다.

시계열 모델 회귀 모델
Naive, Seasonal Naive, Average, Seasonal Average, ARIMA(X), Exponential Smoothing Linear SGD, LARS LASSO, Elastic Net, Prophet, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster

각 범주의 모델은 통합할 수 있는 패턴의 복잡성(모델 용량이라고도 함) 순으로 대략적으로 나열됩니다. 마지막으로 관찰된 값을 단순히 예측하는 Naive 모델은 용량이 적은 반면 잠재적으로 수백만 개의 조정 가능한 매개 변수가 있는 심층 신경망인 Temporal Convolutional Network(TCNForecaster)는 용량이 큽니다.

중요한 것은 AutoML에는 정확도를 더욱 개선시키기 위해 최고 성능 모델의 가중치 조합을 만드는 앙상블 모델도 포함되어 있다는 것입니다. 예측을 위해 Caruana 앙상블 선택 알고리즘을 통해 구성과 가중치를 찾는 소프트 보팅 앙상블을 사용합니다.

참고 항목

예측 모델 앙상블에 대한 두 가지 중요한 경고가 있습니다.

  1. TCN은 현재 앙상블에 포함될 수 없습니다.
  2. AutoML은 기본적으로 다른 앙상블 방법인 스택 앙상블을 사용하지 않도록 설정합니다. 이 방법은 AutoML의 기본 회귀 및 분류 작업에 포함되어 있습니다. 스택 앙상블은 앙상블 가중치를 찾기 위해 최상의 모델 예측에 메타 모델을 맞춥니다. 내부 벤치마킹에서 이 전략이 시계열 데이터에 과적합되는 경향이 증가한다는 사실을 발견했습니다. 이로 인해 일반화가 제대로 이루어지지 않을 수 있으므로 스택 앙상블은 기본적으로 사용하지 않도록 설정됩니다. 그러나 AutoML 구성에서 원하는 경우 사용하도록 설정할 수 있습니다.

AutoML이 데이터를 사용하는 방법

AutoML은 테이블 형식의 "와이드" 형식으로 시계열 데이터를 허용합니다. 즉, 각 변수에는 해당 열이 있어야 합니다. AutoML에서는 열 중 하나가 예측 문제의 시간 축이 되어야 합니다. 이 열은 날짜/시간 형식으로 구문 분석할 수 있어야 합니다. 가장 간단한 시계열 데이터 세트는 시간 열과 숫자 대상 열로 구성됩니다. 대상은 향후를 예측하려는 변수입니다. 다음은 이 간단한 경우의 형식 예입니다.

timestamp quantity
2012-01-01 100
2012-01-02 97
2012-01-03 106
... ...
2013-12-31 347

더 복잡한 경우에는 데이터에 시간 인덱스에 맞춰 정렬된 다른 열이 포함될 수 있습니다.

timestamp SKU price 보급 quantity
2012-01-01 JUICE1 3.5 0 100
2012-01-01 BREAD3 5.76 0 47
2012-01-02 JUICE1 3.5 0 97
2012-01-02 BREAD3 5.5 1 68
... ... ... ... ...
2013-12-31 JUICE1 3.75 0 347
2013-12-31 BREAD3 5.7 0 94

이 예에는 SKU, 소매 가격, 항목이 보급되었는지 여부를 나타내는 플래그와 타임스탬프, 대상 수량 등이 있습니다. 이 데이터 세트에는 분명히 두 개의 시리즈가 있습니다. 하나는 JUICE1 SKU용이고 다른 하나는 BREAD3 SKU용입니다. SKU 열은 시계열 ID 열입니다. 이를 기준으로 그룹화하면 각각 단일 계열을 포함하는 두 개의 그룹이 제공되기 때문입니다. 모델을 살펴보기 전에 AutoML은 입력 구성 및 데이터의 기본 유효성 검사를 수행하고 엔지니어링된 기능을 추가합니다.

데이터 길이 요구 사항

예측 모델을 학습하려면 충분한 양의 과거 데이터가 있어야 합니다. 이 임계값 수량은 학습 구성에 따라 다릅니다. 유효성 검사 데이터를 제공한 경우 시계열당 필요한 최소 학습 관찰 수는 다음과 같습니다.

$T_{\text{user validation}} = H + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

여기서 $H$는 예측 범위이고 $l_{\text{max}}$는 최대 지연 순서이며 $s_{\text{window}}$는 롤링 집계 기능의 기간 크기입니다. 교차 유효성 검사를 사용하는 경우 최소 관찰 수는 다음과 같습니다.

$T_{\text{CV}} = 2H + (n_{\text{CV}} - 1) n_{\text{step}} + \text{max}(l_{\text{max}}, s_{\text{window}}) + 1$,

여기서 $n_{\text{CV}}$는 교차 유효성 검사 접기의 수이고 $n_{\text{step}}$는 CV 단계 크기 또는 CV 접기 사이의 오프셋입니다. 이러한 수식의 기본 논리는 시차 및 교차 유효성 검사 분할에 대한 일부 패딩을 포함하여 각 시계열에 대해 항상 최소한의 학습 관찰 범위가 있어야 한다는 것입니다. 예측을 위한 교차 유효성 검사에 대한 자세한 내용은 예측 모델 선택을 참조하세요.

누락된 데이터 처리

AutoML의 시계열 모델에는 규칙적인 시간 간격 관찰이 필요합니다. 여기에서 규칙적인 간격은 관찰 사이의 일수가 다를 수 있는 월간 또는 연간 관찰과 같은 경우를 포함합니다. 모델링 전에 AutoML은 계열 값이 누락되지 않았는지 확인하고 관찰이 규칙적인지 확인해야 합니다. 따라서 두 가지 누락된 데이터 사례가 있습니다.

  • 표 형식 데이터의 일부 셀에 대한 값이 없습니다.
  • 지정된 시계열 빈도에 따라 예상되는 관찰에 해당하는 이 누락되었습니다.

첫 번째 경우 AutoML은 일반적이고 구성 가능한 기술을 사용하여 누락된 값을 대체합니다.

누락된 예상 행의 예는 다음 표에 나와 있습니다.

timestamp quantity
2012-01-01 100
2012-01-03 106
2012-01-04 103
... ...
2013-12-31 347

이 시리즈는 표면적으로 매일 빈도가 있지만 2012년 1월 2일에 대한 관찰은 없습니다. 이 경우 AutoML은 2012년 1월 2일에 대한 새 행을 추가하여 데이터를 채우려고 시도합니다. 그러면 quantity 열의 새 값과 데이터의 다른 모든 열이 다른 누락된 값처럼 귀속됩니다. 분명히 AutoML은 이와 같은 관찰 간격을 채우기 위해 시리즈 빈도를 알아야 합니다. AutoML은 이 빈도를 자동으로 검색하거나 선택적으로 사용자가 구성에서 제공할 수 있습니다.

누락된 값을 채우는 대체 방법은 입력에서 구성할 수 있습니다. 기본 방법은 다음 표에 나열되어 있습니다.

열 유형 기본 대체 방법
대상 앞으로 채우기(이월된 마지막 관찰)
숫자 기능 중앙값

범주형 기능에 대한 누락된 값은 누락된 값에 해당하는 추가 범주를 포함하여 숫자 인코딩 중에 처리됩니다. 이 경우 대체가 암시적입니다.

자동화된 기능 엔지니어링

AutoML은 일반적으로 모델링 정확도를 높이기 위해 사용자 데이터에 새 열을 추가합니다. 엔지니어링된 기능에는 다음이 포함될 수 있습니다.

기능 그룹 기본/선택
시간 인덱스(예: 요일)에서 파생된 달력 기능 기본값
시계열 ID에서 파생된 범주 기능 기본값
범주 형식을 숫자 형식으로 인코딩 기본값
특정 국가 또는 지역과 관련된 공휴일에 대한 표시기 기능 선택 사항
대상 수량의 시차 선택 사항
기능 열의 시차 선택 사항
대상 수량의 롤링 기간 집계(예: 이동 평균) 선택 사항
계절 분해(STL) 선택 사항

ForecastingJob 클래스 또는 Azure Machine Learning 스튜디오 웹 인터페이스를 통해 AutoML SDK에서 기능화를 구성할 수 있습니다.

비고정 시계열 검색 및 처리

시간 경과에 따라 평균과 분산이 변하는 시계열을 비고정이라고 합니다. 예를 들어, 확률적 추세를 나타내는 시계열은 본질적으로 비고정입니다. 이를 시각화하기 위해 다음 이미지는 일반적으로 상승 추세를 보이는 계열을 그립니다. 이제 계열의 첫 번째와 두 번째 절반에 대한 평균(average) 값을 계산하고 비교합니다. 두 팀이 똑같나요? 여기서 플롯의 전반부에 있는 계열의 평균은 후반부보다 훨씬 작습니다. 시계열의 평균이 보고 있는 시간 간격에 따라 달라진다는 사실은 시변 모멘트의 예입니다. 여기서 계열의 평균은 첫 번째 모멘트입니다.

Diagram showing retail sales for a non-stationary time series.

다음으로, 첫 번째 차이 $\Delta y_{t} = y_t - y_{t-1}$에서 원래 계열을 플로팅하는 다음 이미지를 살펴보겠습니다. 계열의 평균은 시간 범위에 걸쳐 거의 일정하지만 분산은 다양하게 나타납니다. 따라서 이는 1차 고정 시계열의 예입니다.

Diagram showing retail sales for a weakly stationary time series.

AutoML 회귀 모델은 본질적으로 확률적 추세 또는 비고정 시계열과 관련된 기타 잘 알려진 문제를 처리할 수 없습니다. 결과적으로 이러한 추세가 존재하는 경우 샘플 외 예측 정확도가 떨어질 수 있습니다.

AutoML은 자동으로 시계열 데이터 세트를 분석하여 고정성을 결정합니다. 비고정 시계열이 검색되면 AutoML은 자동으로 차이 변환을 적용하여 비고정 동작의 영향을 완화합니다.

모델 비우기

누락된 데이터 처리 및 기능 엔지니어링을 통해 데이터가 준비되면 AutoML은 모델 권장 사항 서비스를 사용하여 모델 및 하이퍼 매개 변수 집합을 스윕합니다. 모델은 유효성 검사 또는 교차 유효성 검사 메트릭을 기반으로 순위가 매겨진 다음 선택적으로 앙상블 모델에서 상위 모델을 사용할 수 있습니다. 최상의 모델 또는 학습된 모델을 검사, 다운로드 또는 배포하여 필요에 따라 예측을 생성할 수 있습니다. 자세한 내용은 모델 스윕 및 선택 문서를 참조하세요.

모델 그룹화

지정된 데이터 예에서와 같이 데이터 세트에 둘 이상의 시계열이 포함된 경우 해당 데이터를 모델링하는 여러 가지 방법이 있습니다. 예를 들어, 시계열 ID 열별로 그룹화하고 각 계열에 대해 독립적인 모델을 학습시킬 수 있습니다. 보다 일반적인 방식은 데이터를 각각 여러 관련 계열을 포함할 수 있는 그룹으로 분할하고 그룹별로 모델을 학습하는 것입니다. 기본적으로 AutoML 예측은 모델 그룹화에 혼합 방식을 사용합니다. 시계열 모델과 ARIMAX 및 Prophet은 하나의 시리즈를 하나의 그룹에 할당하고 다른 회귀 모델은 모든 시리즈를 단일 그룹에 할당합니다. 다음 표에는 일 대 일 및 다 대 일의 두 가지 범주로 모델 그룹화가 요약되어 있습니다.

자체 그룹의 각 시리즈(1:1) 단일 그룹의 모든 시리즈(N:1)
Naive, Seasonal Naive, Average, Seasonal Average, Exponential Smoothing, ARIMA, ARIMAX, Prophet Linear SGD, LARS LASSO, Elastic Net, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster

AutoML의 Many-Models 솔루션을 통해 보다 일반적인 모델 그룹화가 가능합니다. 많은 모델 - 자동화된 ML Notebook을 참조하세요.

다음 단계