다음을 통해 공유


AutoML의 예측 방법 개요

이 문서에서는 Azure Machine Learning의 AutoML이 시계열 데이터를 준비하고 예측 모델을 빌드하는 데 사용하는 방법을 설명합니다.

학습할 내용:

  • AutoML이 예측에 시계열 모델 및 회귀 모델을 사용하는 방법
  • AutoML이 데이터에서 기능을 준비하고 엔지니어하는 방법
  • 사용할 수 있는 예측 모델 및 사용 시기

AutoML에서 예측 모델을 학습하는 방법에 대한 지침과 예는 시계열 예측을 위한 AutoML 설정을 참조하세요.

AutoML의 예측 방법

AutoML은 여러 방법을 사용하여 시계열 값을 예측합니다. 다음 두 범주에 이러한 메서드를 할당할 수 있습니다.

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

다음 단계는 다음과 같습니다. 이러한 방법을 이해한 후 예측 작업을 구성 하거나 AutoML이 최상의 모델을 선택하는 방법을 알아봅니다.

식료품점에서 특정 브랜드의 오렌지 주스에 대한 일별 수요를 예측해야 한다고 가정해 보겠습니다. 식에서 $y_t$는 $t$일에 이 브랜드에 대한 수요를 나타냅니다. 시계열 모델은 다음 식을 사용하여 과거 수요의 일부 함수를 사용하여 $t+1$에서의 수요를 예측합니다.

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

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

오렌지 주스 수요 사례에서 보여준 시계열 모델은 과거 수요에 대한 정보만 사용하기 때문에 정확하지 않을 수 있습니다. 가격, 요일 및 휴일 기간과 같은 다른 많은 요인이 향후 수요에 영향을 줄 수 있습니다. 다음 식을 사용하여 이러한 예측 변수를 사용하는 회귀 모델을 고려합니다.

$y = g(\text{가격}, \text{요일}, \text{공휴일})$

다시 말해, $g$ 함수는 일반적으로 매개 변수 집합을 가지며, 여기에는 정규화를 제어하는 ​​값이 포함되고, AutoML은 수요와 예측 변수의 과거 값을 사용하여 이를 조정합니다. 회귀 모델이 동시에 정의된 변수 간의 상관 패턴을 사용하여 예측한다는 점을 강조하기 위해 식에서 $t$를 생략했습니다. $g$로부터 $y_{t+1}$을 예측하려면 $t+1$이 어느 요일에 해당하는지, 그 요일이 공휴일인지, 그리고 $t+1$일의 오렌지 주스 가격이 얼마인지 알아야 합니다. 처음 두 가지 정보는 캘린더를 사용하면 쉽게 식별할 수 있습니다. 소매 가격은 일반적으로 미리 정해지므로 오렌지 주스 가격도 하루 전에 알려질 가능성이 높습니다. 하지만 10일 후의 가격은 알 수 없을 수도 있습니다. 이 회귀의 유용성은 예측 범위라고도 하는 예측이 필요한 향후의 거리와 예측 변수의 향후 값을 어느 정도 알고 있는지에 따라 제한된다는 점을 이해하는 것이 중요합니다.

중요합니다

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

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

시계열 모델과 회귀 모델 간의 또 다른 주목할 만한 차이점은 예측을 생성하는 방식입니다. 재귀 관계는 일반적으로 예측을 한 번에 하나씩 생성하는 시계열 모델을 정의합니다. 미래에 많은 기간을 예측하기 위해 예측 수평선까지 반복하여 이전 예측을 모델로 다시 공급하여 필요에 따라 다음 1 기간 미리 예측을 생성합니다. 반대로 회귀 모델은 한 번의 시도로 해당 범위까지의 모든 예측을 생성하는 직접 예측 기능으로 간주됩니다. 직접 예측 기능은 재귀적 방법보다 더 바람직할 수 있습니다. 재귀적 모델은 이전 예측을 모델에 다시 입력할 때 예측 오차가 커지기 때문입니다. 지연 기능이 포함되면 AutoML은 회귀 모델이 직접적인 예측 기능 역할을 할 수 있도록 학습 데이터에 몇 가지 중요한 수정을 가합니다. 자세한 내용은 AutoML에서 시계열 예측에 대한 지연 기능을 참조하세요.

AutoML의 예측 모델

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

딥 러닝 모델에 대해 자세히 알아보세요 . 복잡한 시계열 패턴을 사용하는 경우 AutoML에서 예측을 위해 DNN(Deep Learning 모델)을 참조하세요.

시계열 모델 회귀 모델
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

AutoML에는 정확도를 더욱 개선시키기 위해 최고 성능 모델의 가중치 조합을 만드는 앙상블 모델도 포함되어 있다는 것입니다. 예측의 경우 소프트 투표 앙상블을 사용하고, 카루아나 앙상블 선택 알고리즘을 사용하여 구성 및 가중치를 찾습니다.

참고

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

  • TCN은 현재 앙상블에 포함될 수 없습니다.
  • 기본적으로 AutoML은 AutoML의 기본 회귀 및 분류 작업에 포함된 스택 앙상블 방법을 사용하지 않도록 설정합니다. 스택 앙상블은 앙상블 가중치를 찾기 위해 최상의 모델 예측에 메타 모델을 맞춥니다. 내부 벤치마킹 중에 이 전략은 시계열 데이터를 과잉 맞춤하는 경향이 증가합니다. 이로 인해 일반화가 저하될 수 있으므로 스택 앙상블은 기본적으로 사용하지 않도록 설정됩니다. 필요에 따라 AutoML 구성에서 앙상블을 사용하도록 설정할 수 있습니다.

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

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

시간표시 수량
2012-01-01 100
2012-01-02 97
2012-01-03 106
... ...
2013-12-31 347

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

시간표시 재고 관리 번호 (SKU) 가격 보급 수량
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

두 번째 예에는 타임스탬프와 대상 수량 외에도 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은 누락된 계 열 값이 없고 관찰이 정기적으로 수행되도록 합니다.

AutoML은 두 가지 유형의 누락된 데이터를 처리합니다.

  • 누락된 셀 값: 테이블 형식 데이터의 일부 셀에 대한 값이 없습니다.
  • 누락된 행: 시계열 빈도를 고려할 때 예상되는 관찰에 해당하는 행이 없습니다.

AutoML은 두 형식의 누락된 데이터를 자동으로 검색하고 변환합니다.

첫 번째 경우 AutoML은 일반적이고 구성 가능한 기술을 사용하여 누락된 값을 대체합니다. 다음 표는 예상했던 행이 누락된 예를 보여 줍니다.

시간표시 수량
2012-01-01 100
2012-01-03 106
2012-01-04 103
... ...
2013-12-31 347

이러한 계열은 표면적으로는 매일 빈도가 있지만 2012년 1월 2일(2012-01-02)에 대한 관찰은 없습니다. 이 경우 AutoML은 누락된 값에 대한 새 행을 추가하여 데이터를 채우려고 시도합니다. 그러면 quantity 열의 새 값과 데이터의 다른 모든 열이 다른 누락된 값처럼 귀속됩니다. 이 프로세스를 실행하려면 이 사례에서 보여준 것과 같이 AutoML이 관찰 간격을 채울 수 있도록 계열 빈도를 인식해야 합니다. AutoML은 이 빈도를 자동으로 감지하거나 필요에 따라 구성에서 제공할 수 있습니다.

입력에서 누락된 값을 제공하는 대체 메서드를 구성할 수 있습니다. 다음 표에는 기본 방법이 나열되어 있습니다.

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

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

자동화된 기능 엔지니어링

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

기본 엔지니어링 기능:

  • 요일과 같은 시간 인덱스에서 파생된 캘린더 기능
  • 시계열 ID에서 파생된 범주 기능
  • 범주 형식을 숫자 형식으로 인코딩

선택 가능한 엔지니어링 기능:

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

비고정 시계열 검색 및 처리

시간이 지남에 따라 평균 및 분산이 변하는 시계열을 비정상이라고 합니다. 확률적 추세를 보이는 시계열은 본질적으로 비고정입니다.

다음 이미지는 이 시나리오를 시각화한 것입니다. 차트는 일반적으로 상승 추세를 보이는 계열을 보여 줍니다. 계열의 전반부와 후반부의 평균값을 계산하여 비교하면 차이점을 파악할 수 있습니다. 플롯의 전반부에 있는 계열의 평균은 후반부에 있는 평균보다 작습니다. 계열의 평균이 검토 중인 시간 간격에 따라 달라진다는 팩트는 시간에 따라 변하는 순간의 한 예입니다. 이 시나리오에서는 계열의 평균이 첫 번째 모멘트입니다.

비고정 시계열의 소매 매출을 보여 주는 다이어그램.

다음 이미지는 원래 계열을 1차 차분으로 나타낸 차트를 보여 줍니다. $\델타 y_{t} = y_t - y_{t-1}$. 계열의 평균은 시간 범위에 걸쳐 거의 일정하지만 분산은 다양하게 나타납니다. 이 시나리오는 1차 고정 시계열의 예를 보여 줍니다.

약하게 고정된 시계열의 소매 판매를 보여 주는 다이어그램.

AutoML 회귀 모델은 본질적으로 비고정 시계열과 관련된 확률적 추세나 기타 잘 알려진 문제를 처리할 수 없습니다. 결과적으로, 이러한 추세가 나타나면 샘플 외부 예측 정확도가 낮아질 수 있습니다.

AutoML은 시계열 데이터 세트를 자동으로 분석하여 수준이나 정상성을 판단합니다. 비정상 시계열을 감지하면 AutoML은 비정상 동작의 영향을 완화하기 위해 차이점 변형을 자동으로 적용합니다.

모델 비우기

데이터 처리 및 기능 엔지니어링이 누락된 데이터 준비 후 AutoML은 모델 권장 사항 서비스를 사용하여 모델 및 하이퍼 매개 변수 집합을 스윕합니다.

모델은 유효성 검사 또는 교차 유효성 검사 메트릭에 따라 순위가 지정됩니다. 선택적으로 앙상블 모델에서 상위 모델을 사용할 수 있습니다. 최상의 모델 또는 학습된 모델을 검사, 다운로드 또는 배포하여 필요에 따라 예측을 생성할 수 있습니다. 자세한 내용은 AutoML에서 예측을 위한 모델 스위핑 및 선택을 참조하세요.

모델 그룹화

데이터 세트에 둘 이상의 시계열이 포함된 경우 다양한 방식으로 데이터를 모델링할 수 있습니다. 데이터를 시계열 ID 열 별로 그룹화하고 각 계열에 대한 독립 모델을 학습할 수 있습니다. 보다 일반적인 방법은 데이터를 각각 여러 개의(관련 있는) 계열이 포함된 그룹으로 분할하고 각 그룹에 대한 모델을 학습하는 것입니다.

기본적으로 AutoML 예측은 모델 그룹화에 혼합 방식을 사용합니다. 시계열 모델과 ARIMAX 및 예언자는 하나의 그룹에 하나의 시리즈를 할당합니다. 다른 회귀 모델은 모든 계열을 단일 그룹에 할당합니다.

각 모델 형식이 그룹을 사용하는 방법은 다음과 같습니다.

  • 별도의 그룹의 각 계열(1:1): Naive, Seasonal Naive, Average, Seasonal Average, Exponential Smoothing, ARIMA, ARIMAX, Prophet

  • 동일한 그룹의 모든 계열(N:1): Linear SGD, LARS LASSO, Elastic Net, K Nearest Neighbors, Decision Tree, Random Forest, Extremely Randomized Trees, Gradient Boosted Trees, LightGBM, XGBoost, TCNForecaster

더 일반적인 모델 그룹화에는 AutoML에서 많은 모델 솔루션을 사용할 수 있습니다. 자세한 내용은 다양한 모델 - 자동화된 ML Notebook을 참조하세요.