AutoML의 예측 방법 개요
이 문서에서는 Azure Machine Learning의 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{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의 예측 모델
Machine Learning의 AutoML은 다음 예측 모델을 구현합니다. 각 범주에 대해 모델은 통합할 수 있는 패턴의 복잡성(모델 용량이라고도 함 )의 순서대로 대략적으로 나열됩니다. 단순히 마지막으로 관찰된 값을 예측하는 Naive 모델은 낮은 용량을 가지며, 잠재적으로 수백만 개의 튜닝 가능한 매개 변수가 있는 DNN(심층 신경망)인 TCNForecaster(Temporal Convolutional Network)는 대용량입니다.
AutoML에는 정확도를 더욱 높이기 위해 가장 성능이 뛰어난 모델의 가중치 조합을 만드는 앙상블 모델도 포함되어 있습니다. 예측을 위해 카루아나 앙상블 선택 알고리즘을 사용하여 컴퍼지션 및 가중치를 찾을 수 있는 소프트 투표 앙상블을 사용합니다.
참고 항목
예측 모델 앙상블에 대한 두 가지 중요한 경고가 있습니다.
- TCN은 현재 앙상블에 포함될 수 없습니다.
- 기본적으로 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 |
두 번째 예제에는 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은 일반적인 구성 가능한 기술을 사용하여 누락된 값을 생성합니다. 다음 표에서는 누락된 예상 행의 예를 보여줍니다.
timestamp | quantity |
---|---|
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은 일반적으로 모델링 정확도를 높이기 위해 사용자 데이터에 새 열을 추가합니다. 엔지니어링된 기능에는 기본 또는 선택적 항목이 포함될 수 있습니다.
기본 엔지니어링 기능:
- 시간 인덱스에서 파생된 일정 기능 (예: 요일)
- 시계열 ID에서 파생된 범주 기능
- 범주 형식을 숫자 형식으로 인코딩
선택적 엔지니어링 기능:
- 지정된 지역과 연결된 휴일에 대한 표시기 기능
- 대상 수량의 시차
- 기능 열의 시차
- 롤링 기간 집계(예: 대상 수량의 롤링 평균)
- 계절적 분해((LOESS(STL)를 사용한 계절 및 추세 분해)
ForecastingJob 클래스 또는 Azure Machine Learning 스튜디오 웹 인터페이스를 사용하여 AutoML SDK에서 기능화를 구성할 수 있습니다.
비고정 시계열 검색 및 처리
시간에 따른 평균 및 분산이 고정되지 않은 시계열이라고 하는 시계열입니다. 확률적 추세를 나타내는 시계열은 본질적으로 비정상입니다.
다음 이미지는 이 시나리오에 대한 시각화를 제공합니다. 차트는 일반적으로 상향 추세인 계열을 그어 줍니다. 계열의 첫 번째 및 후반부에 대한 평균(평균) 값을 계산하고 비교하는 경우 차이점을 식별할 수 있습니다. 플롯의 전반부에 있는 계열의 평균은 후반의 평균보다 작습니다. 계열의 평균이 검토 중인 시간 간격에 따라 달라진다는 사실은 시간이 달라지는 순간의 예입니다. 이 시나리오에서 시리즈의 평균은 첫 번째 순간입니다.
다음 이미지는 첫 번째 차이점으로 원래 계열을 그리는 차트를 보여 줍니다. $\Delta y_{t} = y_t - y_{t-1}$. 계열의 평균은 시간 범위에 걸쳐 거의 일정하지만 분산은 다양하게 나타납니다. 이 시나리오에서는 첫 번째 순서 고정 타임스 시리즈의 예를 보여 줍니다.
AutoML 회귀 모델은 본질적으로 확률적 추세 또는 비정상 시계열과 관련된 기타 잘 알려진 문제를 처리할 수 없습니다. 따라서 이러한 추세가 있을 때는 표본 외 예측 정확도가 저하될 수 있습니다.
AutoML은 시계열 데이터 세트를 자동으로 분석하여 해당 수준 또는 고정성을 결정합니다. 비정상 시계열이 감지되면 AutoML은 비정상 동작의 영향을 완화하기 위해 자동으로 차이점 변형을 적용합니다.
모델 비우기
누락된 데이터 처리 및 기능 엔지니어링으로 데이터를 준비한 후 AutoML은 모델 추천 서비스를 사용하여 모델 및 하이퍼 매개 변수 집합을 스윕합니다.
모델은 유효성 검사 또는 교차 유효성 검사 메트릭에 따라 순위가 매겨진 다음, 선택적으로 상위 모델을 앙상블 모델에서 사용할 수 있습니다. 최상의 모델 또는 학습된 모델을 검사, 다운로드 또는 배포하여 필요에 따라 예측을 생성할 수 있습니다. 자세한 내용은 AutoML에서 예측에 대한 모델 비우기 및 선택을 참조 하세요.
모델 그룹화
데이터 세트에 둘 이상의 시계열이 포함된 경우 데이터를 모델링하는 여러 가지 방법이 있습니다. 시계열 ID 열의 데이터를 그룹화하고 각 계열에 대한 독립 모델을 학습할 수 있습니다. 보다 일반적인 방법은 데이터를 각각 여러(관련 있는) 계열을 포함할 수 있는 그룹으로 분할하고 그룹당 모델을 학습시키는 것입니다.
기본적으로 AutoML 예측은 모델 그룹화에 혼합 방식을 사용합니다. 시계열 모델과 ARIMAX 및 Prophet은 하나의 시리즈를 하나의 그룹에 할당하고 다른 회귀 모델은 모든 시리즈를 단일 그룹에 할당합니다.
각 모델 형식에서 그룹을 사용하는 방법은 다음과 같습니다.
개별 그룹의 각 시리즈(1:1): Naive, Seasonal Naive, Average, Seasonal Average, Exponential Smoothing, ARIMA, ARIMAX, Prophet
동일한 그룹의 모든 시리즈(N:1): 선형 SGD, LARS LASSO, Elastic Net, K 가장 가까운 인접 항목, 의사 결정 트리, 임의 포리스트, 매우 무작위화된 트리, 그라데이션 강화 트리, LightGBM, XGBoost, TCNForecaster
AutoML에서 여러 모델 솔루션을 사용하여 보다 일반적인 모델 그룹화가 가능합니다. 자세한 내용은 여러 모델 - 자동화된 ML Notebook을 참조하세요.