

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

# API를 사용하여 시계열 예측을 위한 AutoML 작업 생성
<a name="autopilot-create-experiment-timeseries-forecasting"></a>

기계 학습에서의 예측은 과거 데이터와 패턴을 기반으로 미래의 결과 또는 추세를 예측하는 프로세스를 말합니다. 기계 학습 알고리즘은 과거 시계열 데이터를 분석하고 기본 패턴을 식별함으로써 예측을 수행하고 미래 행동에 대한 귀중한 통찰력을 제공할 수 있습니다. 예측의 목표는 시간 경과에 따른 입력 변수와 대상 변수 간의 관계를 정확하게 포착할 수 있는 모델을 개발하는 것입니다. 여기에는 추세, 계절성, 데이터 내 기타 관련 패턴과 같은 다양한 요인을 조사하는 작업이 포함됩니다. 수집된 정보는 기계 학습 모델을 훈련하는 데 사용됩니다. 훈련된 모델은 새 입력 데이터를 가져와 학습된 패턴과 관계를 적용하여 예측을 생성할 수 있습니다. 판매 예측, 주식 시장 동향, 일기 예보, 수요 예측 등과 같은 다양한 사용 사례에 대한 예측을 제공할 수 있습니다.

다음 지침은 SageMaker [API 참조](https://docs.aws.amazon.com/sagemaker/latest/dg/autopilot-reference.html)를 사용하여 시계열 예측 문제 유형에 대한 파일럿 실험으로 Amazon SageMaker Autopilot 작업을 생성하는 방법을 보여줍니다.

**참고**  
텍스트 및 이미지 분류, 시계열 예측, 대형 언어 모델 미세 조정과 같은 작업은 버전 2의 [AutoML REST API](autopilot-reference.md)를 통해서만 사용할 수 있습니다. 선택한 언어가 Python인 경우 Amazon SageMaker Python SDK의 [AWS SDK for Python (Boto3)](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker/client/create_auto_ml_job_v2.html) 또는 [AutoMLV2 객체](https://sagemaker.readthedocs.io/en/stable/api/training/automlv2.html#sagemaker.automl.automlv2.AutoMLV2)를 직접 참조할 수 있습니다.  
편리한 사용자 인터페이스를 선호하는 사용자는 [Amazon SageMaker Canvas](https://docs.aws.amazon.com/sagemaker/latest/dg/canvas-getting-started.html)를 사용하여 사전 훈련된 모델, 생성형 AI 기반 모델에 액세스하거나 특정 텍스트, 이미지 분류, 예측 요구 또는 생성형 AI에 맞춘 사용자 지정 모델을 생성할 수 있습니다.

Amazon SageMaker Autopilot 또는 AWS CLI에서 지원하는 모든 언어로 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html) API를 호출하여 프로그래밍 방식으로 Autopilot 시계열 예측 실험을 생성할 수 있습니다.

이 API 작업이 선택한 언어의 함수로 변환되는 방식에 대한 자세한 내용은 `CreateAutoMLJobV2`의 [참고 항목](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_SeeAlso) 섹션을 참조하고 SDK를 선택하세요. 예를 들어, Python 사용자의 경우 AWS SDK for Python (Boto3)에서 `[create\$1auto\$1ml\$1job\$1v2](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sagemaker.html#SageMaker.Client.create_auto_ml_job_v2)`의 전체 요청 구문을 참조하세요.

Autopilot은 대상 시계열을 사용하여 여러 모델 후보를 훈련시킨 다음 주어진 객관적 지표에 맞는 최적의 예측 모델을 선택합니다. 모델 후보를 훈련하면 `[BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateProperties.html#sagemaker-Type-CandidateProperties-CandidateMetrics)`에서 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`에 대한 응답에서 최적의 후보 지표를 찾을 수 있습니다.

다음 섹션에서는 시계열 예측에 사용되는 `CreateAutoMLJobV2` API의 필수 및 선택적 입력 요청 파라미터를 정의합니다.

**참고**  
실용적인 실습용 시계열 예측 예제는 [Amazon SageMaker Autopilot을 사용한 노트북 시계열 예측](https://github.com/aws/amazon-sagemaker-examples/blob/main/autopilot/autopilot_time_series.ipynb)을 참조하세요. 이 노트북에서는 Amazon SageMaker Autopilot을 사용하여 시계열 모델을 훈련하고 훈련된 모델을 사용하여 예측을 생성합니다. 노트북은 Amazon S3에서 표 형식의 과거 데이터로 구성된 미리 만들어진 데이터세트를 검색하는 지침을 제공합니다.

## 사전 조건
<a name="autopilot-timeseries-forecasting-prerequisites"></a>

SageMaker AI에서 Autopilot을 사용하여 시계열 예측 실험을 만들기 전에 다음 내용을 확인합니다.
+ 시계열 데이터세트를 준비하세요. 데이터세트 준비에는 다양한 소스에서 관련 데이터를 수집하고, 데이터를 정리 및 필터링하여 노이즈와 불일치를 제거하고, 구조화된 형식으로 구성하는 작업이 포함됩니다. Autopilot의 시계열 형식 요구 사항에 대해 자세히 알아보려면 [시계열 데이터세트 형식 및 누락된 값 채우기 방법](timeseries-forecasting-data-format.md) 섹션을 참조하세요. 선택 사항으로, 원하는 국가의 공휴일 달력으로 데이터세트를 보완하여 관련 패턴을 캡처할 수도 있습니다. 휴일 달력에 대한 자세한 내용은 [국경일 달력](autopilot-timeseries-forecasting-holiday-calendars.md) 섹션을 참조하세요.
**참고**  
예측하려는 향후 데이터 포인트 1개당 최소 3\$15개의 과거 데이터 포인트를 제공하는 것이 좋습니다. 예를 들어, 일일 데이터를 기반으로 7일 전(1주일)을 예측하려면 최소 21\$135일의 기록 데이터에 대해 모델을 훈련합니다. 계절적 및 반복적 패턴을 캡처할 수 있는 충분한 데이터를 제공해야 합니다.
+ 시계열 데이터를 Amazon S3 버킷에 저장합니다.
+ 실험을 실행하는 데 사용된 SageMaker AI 실행 역할에 대한 입력 데이터가 들어 있는 Amazon S3 버킷에 대해 전체 액세스 권한을 부여합니다. 이 작업이 완료되면 Autopilot API 요청에서 이 실행 역할의 ARN을 사용할 수 있습니다.
  + SageMaker AI 실행 역할 검색에 대한 자세한 내용은 [실행 역할을 가져옵니다.](sagemaker-roles.md#sagemaker-roles-get-execution-role) 섹션을 참조하세요.
  + Amazon S3에 있는 하나 이상의 특정 버킷에 액세스할 수 있는 권한을 SageMaker AI 실행 역할에 부여하는 방법에 대한 자세한 내용은 [실행 역할 생성](sagemaker-roles.md#sagemaker-roles-create-execution-role)에서 *Add Additional Amazon S3 Permissions to a SageMaker AI Execution Role*을 참조하세요.

## 필수 파라미터
<a name="timeseries-forecasting-api-required-params"></a>

시계열 예측을 위한 Autopilot 실험을 만들기 위해 `[CreateAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html)`를 호출할 때는 다음 값을 제공해야 합니다.
+ 작업 이름을 지정하기 위한 `[AutoMLJobName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#API_CreateAutoMLJobV2_RequestSyntax)`. 이름은 `string` 형식이어야 하며 최소 길이가 1자이고 최대 길이가 32자여야 합니다.
+ 데이터가 포함된 Amazon S3 버킷의 이름을 지정하는 `[AutoMLJobInputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLJobInputDataConfig)`에서 한 개 이상의 `[AutoMLJobChannel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobChannel.html)`. 선택적으로, 콘텐츠(CSV 또는 Parquet 파일) 및 압축(GZip) 유형을 지정할 수 있습니다.
+ 시계열 예측 작업의 설정을 구성하기 위한 유형 `[TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)`의 `[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`. 특히 다음을 지정해야 합니다.
  + 예측의 원하는 세부 수준(시간별, 일별, 월별 등)을 나타내는 예측 **빈도**.

    유효한 간격은 정수와 그 뒤에 붙은 `Y`(년), `M`(월), `W`(주), `D`(일), `H`(시) 및 `min`(분)입니다. 예를 들어 `1D`는 매일을 나타내고 `15min`은 15분마다를 나타냅니다. 빈도 값이 다음으로 큰 빈도와 겹치지 않아야 합니다. 예를 들어 `60min` 대신 `1H`의 빈도를 사용해야 합니다.

    각 빈도의 유효한 값은 다음과 같습니다.
    + 분 – 1\$159
    + 시 – 1\$123
    + 일 – 1\$16
    + 주 – 1\$14
    + 월 – 1\$111
    + 년 – 1
  + 예측에서 모델이 예측하는 시간 단계의 수를 나타내는 예상 **구간**. 이 예측 구간은 또한 예측 길이라고도 합니다. 최대 예측 구간은 500개의 시간 단계 또는 데이터세트의 시간 단계 중 1/4보다 작은 시간 단계입니다.
  + [TimeSeriesConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesConfig.html)에서는 다음을 지정하여 열 헤더를 예측에 매핑하도록 데이터세트의 스키마를 정의합니다.
    + `TargetAttributeName`: 예측할 대상 필드의 과거 데이터를 포함하는 열입니다.
    + `TimestampAttributeName`: 특정 항목의 목표값이 기록되는 시점을 포함하는 열입니다.
    + `ItemIdentifierAttributeName`: 목표값을 예측하려는 항목 식별자를 포함하는 열입니다.

  다음은 그와 같은 요청 파라미터의 예입니다. 이 예에서는 20일 동안 특정 품목의 예상 수량 또는 수요 수준에 대한 일일 예측을 설정합니다.

  ```
  "AutoMLProblemTypeConfig": { 
          "ForecastFrequency": "D",
          "ForecastHorizon": 20,
          "TimeSeriesConfig": {
              "TargetAttributeName": "demand",
              "TimestampAttributeName": "timestamp",
              "ItemIdentifierAttributeName": "item_id"
          },
  ```
+ AutoML 작업의 아티팩트를 저장할 Amazon S3 출력 경로를 지정하기 위한 `[OutputDataConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLOutputDataConfig.html)`.
+ 데이터 액세스에 사용되는 역할의 ARN을 지정하기 위한 `[RoleArn](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJob.html#sagemaker-CreateAutoMLJob-request-RoleArn)`. 데이터에 대한 액세스 권한을 부여한 실행 역할의 ARN을 사용할 수 있습니다.

다른 모든 파라미터는 선택 사항입니다. 예를 들어 특정 예측 분위수를 설정하거나, 데이터세트에서 누락된 값을 채우는 방법을 선택하거나, 예측 빈도에 맞지 않는 데이터를 집계하는 방법을 정의할 수 있습니다. 추가 파라미터를 설정하는 방법에 대한 자세한 내용은 [선택적 파라미터](#timeseries-forecasting-api-optional-params) 섹션을 참조하세요.

## 선택적 파라미터
<a name="timeseries-forecasting-api-optional-params"></a>

다음 섹션에서는 시계열 예측 AutoML 작업에 전달할 수 있는 몇 가지 선택적 파라미터에 대해 자세히 설명합니다.

### 알고리즘을 지정하는 방법
<a name="timeseries-forecasting-algorithms-selection"></a>

기본적으로 Autopilot 작업은 데이터세트에서 사전 정의된 알고리즘 목록을 훈련시킵니다. 그러나 알고리즘 기본 선택 사항의 서브셋을 제공할 수 있습니다.

시계열 예측의 경우 를 유형`[TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)`으로 선택해야 합니다`[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)`.

그러면 [CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html)의 `AlgorithmsConfig` 속성에서 선택한 `AutoMLAlgorithms`의 배열을 지정할 수 있습니다.

다음은 `AutoMLAlgorithms` 필드에 정확히 세 개의 알고리즘('cnn-qr', 'prophet', 'arima')을 나열하는 `AlgorithmsConfig` 속성의 예입니다.

```
{
   "[AutoMLProblemTypeConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-AutoMLProblemTypeConfig)": {
        "[TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)": {
          "[CandidateGenerationConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html)": {
            "[AlgorithmsConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateGenerationConfig.html#sagemaker-Type-CandidateGenerationConfig-AlgorithmsConfig)":[
               {"[AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html)":["cnn-qr", "prophet", "arima"]}
            ]
         },
       },
     },
  }
```

시계열 예측에 사용할 수 있는 알고리즘 목록은 [https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLAlgorithmConfig.html#sagemaker-Type-AutoMLAlgorithmConfig-AutoMLAlgorithms) 섹션을 참조하세요. 각 알고리즘에 대한 자세한 내용은 [시계열 예측을 위한 알고리즘 지원](timeseries-forecasting-algorithms.md)을 참조하세요.

### 사용자 지정 분위수를 지정하는 방법
<a name="timeseries-forecasting-custom-quantiles"></a>

Autopilot은 대상 시계열을 사용하여 6개의 모델 후보를 훈련시킨 다음 스태킹 앙상블 방법을 사용하여 이러한 모델을 결합하여 주어진 목표 지표에 대한 최적의 예측 모델을 만듭니다. 각 Autopilot 예측 모델은 P1과 P99 사이의 분위수로 예측치를 생성하여 확률적 예측을 생성합니다. 이러한 분위수는 예측 불확실성을 설명하는 데 사용됩니다. 기본적으로 0.1(`p10`), 0.5(`p50`) 및 0.9(`p90`)에 대한 예측이 생성됩니다. 원하는 분위수를 직접 지정할 수 있습니다.

Autopilot에서는 [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)의 `ForecastQuantiles` 속성에 0.01 이상의 증분으로 0.01(`p1`)부터 0.99(`p99`)까지 최대 5개까지 예측 분위수를 지정할 수 있습니다.

다음 예에서는 20일 동안 특정 품목의 예상 수량 또는 수요 수준에 대한 일일 10분위수, 25분위수, 50분위수, 75분위수 및 90분위수 예측을 설정합니다.

```
"AutoMLProblemTypeConfig": { 
        "ForecastFrequency": "D",
        "ForecastHorizon": 20,
        "ForecastQuantiles": ["p10", "p25", "p50", "p75", "p90"],
        "TimeSeriesConfig": {
            "TargetAttributeName": "demand",
            "TimestampAttributeName": "timestamp",
            "ItemIdentifierAttributeName": "item_id"
        },
```

### 다양한 예측 빈도에 대한 데이터를 집계하는 방법
<a name="timeseries-forecasting-aggregation"></a>

예측 모델(실험에서 최적의 모델 후보라고도 함)을 만들려면 예측 빈도를 지정해야 합니다. 예측 빈도에 따라 예측에서 예상의 빈도가 결정됩니다. 월별 판매 예측을 예로 들 수 있습니다. Autopilot 최적 모델은 데이터가 기록되는 빈도보다 높은 데이터 빈도에 대한 예측을 생성할 수 있습니다.

훈련 중에 Autopilot은 지정한 예측 빈도와 일치하지 않는 모든 데이터를 집계합니다. 예를 들어 일별 데이터가 있지만 주별 예측 빈도를 지정할 수 있습니다. Autopilot은 일별 데이터가 속한 주를 기준으로 일별 데이터를 정렬합니다. 그런 다음 Autopilot은 데이터를 매주 단일 레코드로 결합합니다.

집계 시 기본 변환 방법은 데이터를 합하는 것입니다. [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)의 `Transformations` 속성에서 AutoML 작업을 생성할 때 집계를 구성할 수 있습니다. 지원되는 집계 방법은 `sum`(기본값), `avg`, `first`, `min`, `max`입니다. 집계는 대상 열에 대해서만 지원됩니다.

다음 예제에서는 개별 프로모션 예측의 평균을 계산하여 최종 집계된 예측 값을 제공하도록 집계를 구성합니다.

```
"Transformations": {
            "Aggregation": {
                "promo": "avg"
            }
        }
```

### 입력 데이터세트에서 누락된 값을 처리하는 방법
<a name="timeseries-forecasting-fill-missing-values"></a>

Autopilot은 시계열 데이터세트의 대상 및 기타 숫자 열에서 누락된 값을 처리하는 다양한 채우기 방법을 제공합니다. 지원되는 채우기 방법 목록 및 사용 가능한 채우기 로직에 대한 자세한 내용은 [누락된 값 처리](timeseries-forecasting-data-format.md#timeseries-missing-values) 섹션을 참조하세요.

AutoML 작업을 생성할 때 [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)의 `Transformations` 속성에서 채우기 전략을 구성합니다.

채우기 방법을 설정하려면 키–값 쌍을 제공해야 합니다.
+ 키는 채우기 방법을 지정하려는 열의 이름입니다.
+ 키와 관련된 값은 해당 열의 채우기 전략을 정의하는 객체입니다.

단일 열에 여러 채우기 방법을 지정할 수 있습니다.

채우기 방법에 특정 값을 설정하려면 채우기 파라미터를 원하는 채우기 방법 값(예:`"backfill" : "value"`)으로 설정하고 접미사 “\$1value”가 붙은 추가 파라미터로 실제 채우기 값을 정의해야 합니다. 예를 들어, `backfill`을 `2`의 값으로 설정하려면 두 파라미터 `"backfill": "value"` 및 `"backfill_value":"2"`를 포함해야 합니다.

다음 예제에서는 불완전 데이터 열 “가격”에 대한 채우기 전략을 다음과 같이 지정합니다. 즉, 항목의 첫 번째 데이터 포인트와 마지막 데이터 포인트 사이의 모든 누락된 값이 `0`으로 설정되며, 그 이후에는 데이터세트 종료 날짜까지 누락된 값이 모두 값 `2`로 채워집니다.

```
"Transformations": {
            "Filling": {
                "price": {
                        "middlefill" : "zero",
                        "backfill" : "value",
                        "backfill_value": "2"
                }
            }
        }
```

### 목표 지표를 지정하는 방법
<a name="timeseries-forecasting-set-objective-metric"></a>

Autopilot은 모델 후보를 평가하고 예측 생성에 사용할 모델을 선택하는 데 도움이 되는 정확도 지표를 생성합니다. 시계열 예측 실험을 실행할 때 AutoML을 선택하여 Autopilot이 예측기를 자동으로 최적화하도록 하거나 예측기의 알고리즘을 수동으로 선택할 수 있습니다.

기본적으로 Autopilot은 평균 가중치 기반 분위수 손실을 사용합니다. 하지만 [AutoMLJobObjective](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLJobObjective.html)의 `MetricName` 속성에서 AutoML 작업을 생성할 때 목표 지표를 구성할 수 있습니다.

사용 가능한 알고리즘 목록은 [시계열 예측을 위한 알고리즘 지원](timeseries-forecasting-algorithms.md) 섹션을 참조하세요.

### 국경일 정보를 데이터세트에 통합하는 방법
<a name="timeseries-forecasting-add-holiday-calendar"></a>

Autopilot에서는 국경일 정보로 구성된 특성 추출 데이터세트를 시계열에 통합할 수 있습니다. Autopilot은 250여 개국의 공휴일 달력에 대한 네이티브 지원을 제공합니다. 국가를 선택하면 Autopilot이 훈련 중에 해당 국가의 공휴일 달력을 데이터세트의 모든 항목에 적용합니다. 이를 통해 모델은 특정 공휴일과 관련된 패턴을 식별할 수 있습니다.

AutoML 작업을 생성할 때 [HolidayConfigAttributes](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_HolidayConfigAttributes.html) 객체를 [TimeSeriesForecastingJobConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_TimeSeriesForecastingJobConfig.html)의 `HolidayConfig` 속성에 전달하여 공휴일 기능화를 활성화할 수 있습니다. `HolidayConfigAttributes` 객체에는 시계열 데이터세트를 보강하는 데 사용되는 공휴일 달력의 국가를 결정하는 두 글자로 된 `CountryCode` 속성이 포함됩니다.

지원되는 캘린더 및 해당 국가 코드 목록은 [국가 코드](autopilot-timeseries-forecasting-holiday-calendars.md#holiday-country-codes) 섹션을 참조하세요.

### 자동 배포를 활성화하는 방법
<a name="timeseries-forecasting-auto-model-deployment"></a>

Autopilot을 사용하면 예측 모델을 엔드포인트에 자동으로 배포할 수 있습니다. AutoML 작업에 최적의 모델 후보에 대한 자동 배포를 활성화하려면, AutoML 작업 요청에 `[ModelDeployConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateAutoMLJobV2.html#sagemaker-CreateAutoMLJobV2-request-ModelDeployConfig)`를 포함하세요. 이렇게 하면 SageMaker AI 엔드포인트에 최적의 모델을 배포할 수 있습니다. 다음은 사용자 지정에 사용할 수 있는 구성입니다.
+ Autopilot이 엔드포인트 이름을 생성하도록 하려면 `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`을 `True`로 설정합니다.
+ 엔드포인트에 고유한 이름을 제공하려면 `[AutoGenerateEndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents) to False and provide a name of your choice in [EndpointName](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_ModelDeployConfig.html#API_ModelDeployConfig_Contents)`을 설정하세요.

### 대규모 데이터세트에 대해 EMR Serverless에서 원격 작업을 시작하도록 AutoML을 구성하는 방법
<a name="autopilot-set-emr-serverless-api-forecasting"></a>

대용량 데이터세트를 처리하는 데 추가 컴퓨팅 리소스가 필요할 때 Amazon EMR Serverless에서 원격 작업을 자동으로 시작하도록 AutoML 작업 V2를 구성할 수 있습니다. 필요한 경우 EMR Serverless로 원활하게 전환하면 AutoML 작업은 사용자의 수동 개입 없이 처음에 프로비저닝된 리소스를 초과하는 데이터세트를 처리할 수 있습니다. EMR Serverless는 테이블 형식 및 시계열 문제 유형에 사용할 수 있습니다. 30GB보다 큰 시계열 데이터세트의 경우 이 옵션을 설정하는 것이 좋습니다.

AutoML 작업 V2가 대규모 데이터세트의 경우 EMR Serverless로 자동으로 전환되도록 하려면 AutoML 작업 V2 입력 요청`AutoMLComputeConfig`의 에 `ExecutionRoleARN` 필드가 포함된 `EmrServerlessComputeConfig` 객체를 제공해야 합니다.

`ExecutionRoleARN` 는 EMR Serverless 작업을 실행하는 데 필요한 권한을 AutoML 작업 V2에 부여하는 IAM 역할의 ARN입니다.

이 역할은 다음과 같은 신뢰 관계를 맺고 있어야 합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "emr-serverless.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

그리고 다음에 대한 권한을 부여합니다.
+ EMR Serverless 애플리케이션을 생성, 나열 및 업데이트합니다.
+ EMR Serverless 애플리케이션에서 작업 실행을 시작, 나열, 가져오기 또는 취소합니다.
+ EMR Serverless 리소스에 태그를 지정합니다.
+ 실행을 위해 IAM 역할을 EMR Serverless 서비스에 전달합니다.

  `iam:PassRole` 권한을 부여하면 AutoML 작업 V2가 일시적으로 `EMRServerlessRuntimeRole-*` 역할을 수임하여 EMR Serverless 서비스에 전달할 수 있습니다. 이는 EMR Serverless 작업 실행 환경에서 데이터 액세스를 위한 Amazon S3, 로깅을 위한 CloudWatch, AWS Glue 데이터 카탈로그에 대한 액세스 또는 워크로드 요구 사항에 따른 기타 AWS 서비스와 같이 런타임 중에 필요한 다른 서비스 및 리소스에 액세스하는 데 사용하는 IAM 역할입니다.

  이 [역할 권한에 대한 자세한 내용은 Amazon EMR Serverless의 작업 런타임](https://docs.aws.amazon.com/emr/latest/EMR-Serverless-UserGuide/security-iam-runtime-role.html) 역할을 참조하세요.

제공된 JSON 문서에 정의된 IAM 정책은 다음과 같은 권한을 부여합니다.

------
#### [ JSON ]

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [{
           "Sid": "EMRServerlessCreateApplicationOperation",
           "Effect": "Allow",
           "Action": "emr-serverless:CreateApplication",
           "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListApplicationOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListApplications",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessApplicationOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:UpdateApplication",
                "emr-serverless:GetApplication"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessStartJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:StartJobRun",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessListJobRunOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:ListJobRuns",
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessJobRunOperations",
            "Effect": "Allow",
            "Action": [
                "emr-serverless:GetJobRun",
                "emr-serverless:CancelJobRun"
            ],
            "Resource": "arn:aws:emr-serverless:*:*:/applications/*/jobruns/*",
            "Condition": {
                "StringEquals": {
                    "aws:ResourceTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "EMRServerlessTagResourceOperation",
            "Effect": "Allow",
            "Action": "emr-serverless:TagResource",
            "Resource": "arn:aws:emr-serverless:*:*:/*",
            "Condition": {
                "StringEquals": {
                    "aws:RequestTag/sagemaker:is-canvas-resource": "True",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
        },
        {
            "Sid": "IAMPassOperationForEMRServerless",
            "Effect": "Allow",
            "Action": "iam:PassRole",
            "Resource": "arn:aws:iam::*:role/EMRServerlessRuntimeRole-*",
            "Condition": {
                "StringEquals": {
                    "iam:PassedToService": "emr-serverless.amazonaws.com",
                    "aws:ResourceAccount": "${aws:PrincipalAccount}"
                }
            }
         }
    ]
}
```

------

# 시계열 데이터세트 형식 및 누락된 값 채우기 방법
<a name="timeseries-forecasting-data-format"></a>

시계열 데이터는 일정한 시간 간격으로 기록된 관측치 또는 측정값의 모음을 말합니다. 이 유형의 데이터에서는 각 관측치가 특정 타임스탬프 또는 시간 기간과 연관되어 연대순으로 정렬된 일련의 데이터 포인트가 생성됩니다.

시계열 데이터세트에 포함하는 특정 열은 분석 목표와 사용 가능한 데이터에 따라 달라집니다. 시계열 데이터는 최소한 다음과 같은 3열 테이블로 구성됩니다.
+ 한 열에는 특정 시점의 값을 참조하기 위해 개별 항목에 할당된 고유 식별자가 포함됩니다.
+ 다른 열은 특정 시점에 주어진 항목 값을 기록하기 위한 시점 값 또는 **대상**을 나타냅니다. 이러한 대상 값을 기준으로 모델을 훈련시킨 후, 이 대상 열에는 모델이 정의된 범위 내에서 지정된 빈도로 예측하는 값이 포함됩니다.
+ 또한 값을 측정한 날짜와 시간을 기록하는 타임스탬프 열도 포함됩니다.
+ 추가 열에는 예측 성과에 영향을 줄 수 있는 다른 요인이 포함될 수 있습니다. 예를 들어 판매 또는 매출을 대상으로 하는 소매용 시계열 데이터세트에는 판매량, 제품 ID, 매장 위치, 고객 수, 재고 수준은 물론이고, 날씨 데이터나 인구 통계 정보와 같은 공분산 지표에 대한 정보를 제공하는 기능이 포함될 수 있습니다.

**참고**  
국가 공휴일 정보의 특성 추출 데이터세트를 시계열에 추가할 수 있습니다. 시계열 모델에 휴일을 포함하면 휴일로 인해 생성되는 주기적 패턴을 캡처할 수 있습니다. 이렇게 하면 데이터의 기본 계절성을 예측에 더 잘 반영할 수 있습니다. 국가별로 사용 가능한 달력에 대한 자세한 내용은 [국경일 달력](autopilot-timeseries-forecasting-holiday-calendars.md) 섹션을 참조하세요.

## 시계열 예측을 위한 데이터세트 형식
<a name="timeseries-format"></a>

Autopilot은 숫자, 카테고리, 텍스트 및 날짜시간 데이터 형식을 지원합니다. 대상 열의 데이터 유형은 숫자여야 합니다.

Autopilot은 CSV(기본값) 파일 또는 Parquet 파일 형식의 시계열 데이터를 지원합니다.
+ **CSV**(쉼표로 구분된 값)는 사람이 읽을 수 있는 일반 텍스트로 데이터를 저장하는 행 기반 파일 형식으로, 다양한 범위의 애플리케이션에서 지원하므로 데이터 교환에 널리 사용됩니다.
+ **Parquet**는 행 기반 파일 형식보다 데이터를 더 효율적으로 저장하고 처리하는 열 기반 파일 형식입니다. 따라서 빅 데이터 문제에 더 나은 옵션입니다.

Autopilot의 예측을 위한 시계열 데이터세트의 리소스 제한에 대한 자세한 내용은 [Autopilot용 시계열 예측 리소스 제한](timeseries-forecasting-limits.md) 섹션을 참조하세요.

## 누락된 값 처리
<a name="timeseries-missing-values"></a>

시계열 예측 데이터의 일반적인 문제는 누락된 값이 있다는 것입니다. 측정 실패, 서식 문제, 인적 오류 또는 기록할 정보 부족 등 여러 가지 이유로 데이터에 누락된 값이 포함될 수 있습니다. 예를 들어 소매점 제품 수요를 예측할 때 품목이 매진되었거나 공급되지 않는 경우 해당 품목이 품절된 동안에는 기록할 판매 데이터가 없습니다. 누락된 값은 충분히 많을 경우 모델의 정확도에 큰 영향을 미칠 수 있습니다.

Autopilot은 대상 열 및 기타 추가 열에 대해 고유한 접근 방식을 사용하여 누락된 값을 처리할 수 있는 다양한 채우기 방법을 제공합니다. 채우기는 데이터세트에서 누락된 항목에 표준화된 값을 추가하는 프로세스입니다.

시계열 데이터세트에서 누락된 값을 채우는 방법을 설정하는 방법을 알아보려면 [입력 데이터세트에서 누락된 값을 처리하는 방법](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-fill-missing-values) 섹션을 참조하세요.

Autopilot은 다음과 같은 채우기 방법을 지원합니다.
+ **전면 채우기:** 모든 항목 중에서 가장 먼저 기록된 데이터 포인트와 각 항목의 시작점 사이에서 누락된 값을 채웁니다(각 항목은 다른 시간에 시작할 수 있음). 이를 통해 각 항목의 데이터가 완전하도록 보장하고 가장 먼저 기록된 데이터 포인트부터 해당 시작 지점까지 확장됩니다.
+ **중간 채우기:** 데이터세트에 있는 항목의 시작 날짜와 종료 날짜 사이에 누락된 값을 채웁니다.
+ **후면 채우기:** 모든 항목 중에서 가장 늦게 기록된 데이터 포인트와 각 항목의 마지막 데이터 포인트 사이에서 누락된 값을 채웁니다(각 항목은 다른 시간에 중지할 수 있음).
+ **앞으로 채우기:** 모든 항목 중에서 마지막으로 기록된 데이터 포인트와 예측 기간 종료 시점 사이의 누락된 값을 모두 채웁니다.

다음 이미지는 다양한 채우기 방법을 시각적으로 나타냅니다.

![\[Amazon SageMaker Autopilot에서 시계열 예측을 위한 다양한 채우기 방법입니다.\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/images/autopilot/autopilot-forecast-filling-methods.png)


### 채우기 로직을 선택하세요
<a name="filling-logic"></a>

채우기 로직을 선택할 때 모델에서 로직을 해석하는 방법을 고려해야 합니다. 예를 들어, 소매 시나리오에서 재고 품목의 판매량이 0을 기록하는 것은 품절 품목의 판매량이 0을 기록하는 것과 다릅니다. 후자가 해당 품목에 대한 고객의 관심 부족을 의미하지는 않습니다. 이 때문에 시계열의 대상 열에서 `0` 채우기는 예측에서 예측기를 과소 편향시킬 수 있는 반면, `NaN` 채우기는 실제 발생한 재고 품목 판매량 0을 무시하고 예측기를 과다 편향시킬 수 있습니다.

### 채우기 로직
<a name="filling-restrictions"></a>

데이터세트의 대상 열과 다른 숫자 열을 채울 수 있습니다. 대상 열의 채우기 지침 및 제한 사항은 나머지 숫자 열과 다릅니다.

채우기 지침


| 열 유형 | 기본적으로 채우기? | 지원되는 채우기 방법 | 기본 채우기 로직 | 허용되는 채우기 로직 | 
| --- | --- | --- | --- | --- | 
| 대상 열 | 예 | 중간 및 뒤로 채우기 | 0 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/timeseries-forecasting-data-format.html)  | 
| 기타 숫자 열 | 아니요 | 중간, 뒤로 및 앞으로 채우기 | 기본값 없음 |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/ko_kr/sagemaker/latest/dg/timeseries-forecasting-data-format.html)  | 

**참고**  
대상 및 기타 숫자 열 모두에 대해, 누락된 값 이전의 가장 최근 데이터 항목 64개가 포함된 이동 구간을 기반으로 `mean`, `median`, `min`, `max`가 계산됩니다.

# 국경일 달력
<a name="autopilot-timeseries-forecasting-holiday-calendars"></a>

Autopilot은 250개 이상의 국가의 공휴일 달력에 액세스할 수 있도록 특성 추출된 국경일 정보 데이터세트를 지원합니다. 공휴일 달력 기능은 공휴일이 수요에 큰 영향을 미칠 수 있는 소매 분야에서 특히 유용합니다. 다음 섹션에는 지원되는 각 국가의 휴일 달력에 액세스하는 데 사용할 수 있는 국가 코드가 나열되어 있습니다.

데이터세트에 달력을 추가하는 방법을 알아보려면 [국경일 정보를 데이터세트에 통합하는 방법](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-add-holiday-calendar)를 참조하세요.

## 국가 코드
<a name="holiday-country-codes"></a>

Autopilot은 다음과 같은 국가의 공휴일 달력에 대한 네이티브 지원을 제공합니다. API로 국가를 지정할 때는 **국가 코드**를 사용하세요.


| 국가 | 국가 코드 | 
| --- | --- | 
|   아프가니스탄   |   AF   | 
|   올란드 제도   |   AX   | 
|   알바니아   |   AL   | 
|   알제리   |   DZ   | 
|   미국령 사모아   |   AS   | 
|   안도라   |   AD   | 
|   앙골라   |   AO   | 
|   앙귈라   |   AI   | 
|   남극   |   AQ   | 
|   앤티가 바부다   |   AG   | 
|   아르헨티나   |   AR   | 
|   아르메니아   |   AM   | 
|   아루바   |   AW   | 
|   호주   |   AU   | 
|   오스트리아   |   AT   | 
|   아제르바이잔   |   AZ   | 
|   바하마   |   BS   | 
|   바레인   |   BH   | 
|   방글라데시   |   BD   | 
|   바베이도스   |   BB   | 
|   벨로루시   |   BY   | 
|   벨기에   |   BE   | 
|   벨리즈   |   BZ   | 
|   베냉   |   BJ   | 
|   버뮤다   |   BM   | 
|   부탄   |   BT   | 
|   볼리비아   |   BO   | 
|   보스니아 헤르체고비나   |   BA   | 
|   보츠와나   |   BW   | 
|   부베 섬   |   BV   | 
|   브라질   |   BR   | 
|   영국령 인도양 지역   |   IO   | 
|   영국령 버진 제도   |   VG   | 
|   브루나이 다루살람   |   BN   | 
|   불가리아   |   BG   | 
|   부르키나 파소   |   BF   | 
|   부룬디   |   BI   | 
|   캄보디아   |   KH   | 
|   카메룬   |   CM   | 
|   캐나다   |   CA   | 
|   카보베르데   |   CV   | 
|   네덜란드령 카리브   |   BQ   | 
|   케이맨 제도   |   KY   | 
|   중앙아프리카 공화국   |   CF   | 
|   차드   |   TD   | 
|   칠레   |   CL   | 
|   중국   |   CN   | 
|   크리스마스 섬   |   CX   | 
|   코코스(킬링) 제도   |   CC   | 
|   콜롬비아   |   CO   | 
|   코모로   |   KM   | 
|   쿡 제도   |   CK   | 
|   코스타리카   |   CR   | 
|   크로아티아   |   HR   | 
|   쿠바   |   CU   | 
|   퀴라소   |   CW   | 
|   사이프러스   |   CY   | 
|   체코   |   CZ   | 
|   콩고민주공화국   |   CD   | 
|   덴마크   |   DK   | 
|   지부티   |   DJ   | 
|   도미니카   |   DM   | 
|   도미니카 공화국   |   DO   | 
|   에콰도르   |   EC   | 
|   이집트   |   EG   | 
|   엘살바도르   |   SV   | 
|   적도 기니   |   GQ   | 
|   에리트레아   |   ER   | 
|   에스토니아   |   EE   | 
|   에스와티니   |   SZ   | 
|   에티오피아   |   ET   | 
|   포클랜드 제도   |   FK   | 
|   페로 제도   |   FO   | 
|   피지   |   FJ   | 
|   핀란드   |   FI   | 
|   프랑스   |   FR   | 
|   프랑스령 기아나   |   GF   | 
|   프랑스령 폴리네시아   |   PF   | 
|   프랑스령 남방 지역   |   TF   | 
|   가봉   |   GA   | 
|   감비아   |   GM   | 
|   조지아   |   GE   | 
|   독일   |   DE   | 
|   가나   |   GH   | 
|   지브롤터   |   GI   | 
|   그리스   |   GR   | 
|   그린란드   |   GL   | 
|   그레나다   |   GD   | 
|   과들루프   |   GP   | 
|   괌   |   GU   | 
|   과테말라   |   GT   | 
|   건지   |   GG   | 
|   기니   |   GN   | 
|   기니비사우   |   GW   | 
|   가이아나   |   GY   | 
|   아이티   |   HT   | 
|   허드 맥도널드 제도   |   HM   | 
|   온두라스   |   HN   | 
|   홍콩   |   HK   | 
|   헝가리   |   HU   | 
|   아이슬란드   |   IS   | 
|   인도   |   IN   | 
|   인도네시아   |   ID   | 
|   이란   |   IR   | 
|   이라크   |   IQ   | 
|   아일랜드   |   IE   | 
|   맨 섬   |   IM   | 
|   이스라엘   |   IL   | 
|   이탈리아   |   IT   | 
|   아이버리 코스트   |   CI   | 
|   자메이카   |   JM   | 
|   일본   |   JP   | 
|   저지   |   JE   | 
|   요르단   |   JO   | 
|   카자흐스탄   |   KZ   | 
|   케냐   |   KE   | 
|   키리바시   |   KI   | 
|   코소보   |   XK   | 
|   쿠웨이트   |   KW   | 
|   키르기스스탄   |   KG   | 
|   라오스   |   LA   | 
|   라트비아   |   LV   | 
|   레바논   |   LB   | 
|   레소토   |   LS   | 
|   라이베리아   |   LR   | 
|   리비아   |   LY   | 
|   리히텐슈타인   |   LI   | 
|   리투아니아   |   LT   | 
|   룩셈부르크   |   LU   | 
|   마카오   |   MO   | 
|   마다가스카르   |   MG   | 
|   말라위   |   MW   | 
|   말레이시아   |   MY   | 
|   몰디브   |   MV   | 
|   말리   |   ML   | 
|   몰타   |   MT   | 
|   마셜 제도   |   MH   | 
|   마르티니크   |   MQ   | 
|   모리타니아   |   MR   | 
|   모리셔스   |   MU   | 
|   마요트   |   YT   | 
|   멕시코   |   MX   | 
|   미크로네시아   |   FM   | 
|   몰도바   |   MD   | 
|   모나코   |   MC   | 
|   몽골   |   MN   | 
|   몬테네그로   |   ME   | 
|   몬트세라트 섬   |   MS   | 
|   모로코   |   MA   | 
|   모잠비크   |   MZ   | 
|   미얀마   |   MM   | 
|   나미비아   |   NA   | 
|   나우루   |   NR   | 
|   네팔   |   NP   | 
|   네덜란드   |   NL   | 
|   뉴칼레도니아   |   NC   | 
|   뉴질랜드   |   NZ   | 
|   니카라과   |   NI   | 
|   니제르   |   NE   | 
|   나이지리아   |   NG   | 
|   니우에   |   NU   | 
|   노퍽 섬   |   NF   | 
|   북한   |   KP   | 
|   북 마케도니아   |   MK   | 
|   북마리아나 제도   |   MP   | 
|   노르웨이   |   NO   | 
|   오만   |   OM   | 
|   파키스탄   |   PK   | 
|   팔라우   |   PW   | 
|   팔레스타인   |   PS   | 
|   파나마   |   PA   | 
|   파푸아뉴기니   |   PG   | 
|   파라과이   |   PY   | 
|   페루   |   PE   | 
|   필리핀   |   PH   | 
|   핏케언 제도   |   PN   | 
|   폴란드   |   PL   | 
|   포르투갈   |   PT   | 
|   푸에르토리코   |   PR   | 
|   카타르   |   QA   | 
|   콩고   |   CG   | 
|   레위니옹   |   RE   | 
|   루마니아   |   RO   | 
|   러시아 연방   |   RU   | 
|   르완다   |   RW   | 
|   생 바르텔레미   |   BL   | 
|   “세인트헬레나 어센션 트리스탄다쿠냐”   |   SH   | 
|   세인트 크리스토퍼 네비스   |   KN   | 
|   세인트루시아   |   LC   | 
|   세인트마틴   |   MF   | 
|   세인트 피에르 미켈론   |   PM   | 
|   세인트 빈센트 그레나딘   |   VC   | 
|   사모아   |   WS   | 
|   산마리노   |   SM   | 
|   상투메 프린시페   |   ST   | 
|   사우디아라비아   |   SA   | 
|   세네갈   |   SN   | 
|   세르비아   |   RS   | 
|   세이셸   |   SC   | 
|   시에라리온   |   SL   | 
|   싱가포르   |   SG   | 
|   신트마르턴   |   SX   | 
|   슬로바키아   |   SK   | 
|   슬로베니아   |   SI   | 
|   솔로몬 제도   |   SB   | 
|   소말리아   |   SO   | 
|   남아프리카 공화국   |   ZA   | 
|   사우스조지아 사우스샌드위치 제도   |   GS   | 
|   대한민국   |   KR   | 
|   남수단   |   SS   | 
|   스페인   |   ES   | 
|   스리랑카   |   LK   | 
|   수단   |   SD   | 
|   수리남   |   SR   | 
|   스발바르 얀마웬   |   SJ   | 
|   스웨덴   |   SE   | 
|   스위스   |   CH   | 
|   시리아   |   SY   | 
|   대만   |   TW   | 
|   타지키스탄   |   TJ   | 
|   탄자니아   |   TZ   | 
|   태국   |   TH   | 
|   동티모르   |   TL   | 
|   토고   |   TG   | 
|   토켈라우   |   TK   | 
|   통가   |   TO   | 
|   트리니다드 토바고   |   TT   | 
|   튀니지   |   TN   | 
|   터키   |   TR   | 
|   투르크메니스탄   |   TM   | 
|   터크스 카이코스 군도   |   TC   | 
|   투발루   |   TV   | 
|   우간다   |   UG   | 
|   우크라이나   |   UA   | 
|   아랍 에미리트 연합국   |   AE   | 
|   영국   |   UK   | 
|   유엔   |   UN   | 
|   미국   |   US   | 
|   미국령 군소 제도   |   UM   | 
|   미국령 버진아일랜드   |   VI   | 
|   우루과이   |   UY   | 
|   우즈베키스탄   |   UZ   | 
|   바누아투   |   VU   | 
|   바티칸 시티   |   VA   | 
|   베네수엘라   |   VE   | 
|   베트남   |   VN   | 
|   월리스 푸투나   |   WF   | 
|   서사하라   |   EH   | 
|   예멘   |   YE   | 
|   잠비아   |   ZM   | 
|   짐바브웨   |   ZW   | 

# 목표 지표
<a name="timeseries-objective-metric"></a>

Autopilot은 모델 후보를 평가하고 예측 생성에 사용할 모델을 선택하는 데 도움이 되는 정확도 지표를 생성합니다. Autopilot이 예측기를 자동으로 최적화하도록 하거나 예측기의 알고리즘을 수동으로 선택할 수 있습니다. 기본적으로 Autopilot은 평균 가중치 기반 분위수 손실을 사용합니다.

다음 목록에는 시계열 예측을 위한 모델의 성능을 측정하는 데 현재 사용할 수 있는 지표의 이름이 나와 있습니다.

**`RMSE`**  
평균 제곱근 오차(RMSE) – 예측값과 실제 값 간의 제곱 차이의 제곱근을 측정하며, 모든 값에 대해 평균을 구합니다. 이는 큰 모델 오차와 이상값이 있음을 나타내는 중요한 지표입니다. 값 범위는 0에서 무한대까지이며 숫자가 작을수록 모델이 데이터에 더 적합함을 나타냅니다. RMSE는 규모에 따라 달라지므로 크기가 다른 데이터세트를 비교하는 데 사용해서는 안 됩니다.

**`wQL`**  
가중치 기반 분위수 손실(WQL) – 예측된 P10, P50 및 P90 분위수와 이들의 실제 분위수 간의 가중치 기반 절대 차이를 측정하여 예측의 정확도를 평가하는데, 값이 낮을수록 성능이 더 우수함을 나타냅니다.

**`Average wQL (default)`**  
평균 가중치 기반 분위수 손실(평균 wQL) – P10, P50 및 P90 분위수의 정확도를 평균화하여 예측을 평가합니다. 값이 낮을수록 모델이 더 정확하다는 의미입니다.

**`MASE`**  
평균 절대 조정 오차(MASE) – 단순 기준 예측 방법의 평균 절대 오차로 정규화된 예측의 평균 절대 오차입니다. 값이 낮을수록 모델의 정확도가 더 높으며, MASE < 1이면 기준보다 나은 것으로 추정되고 MASE > 1이면 기준보다 나쁜 것으로 추정됩니다.

**`MAPE`**  
평균 절대 백분율 오차(MAPE) – 모든 시점에 걸쳐 평균화된 백분율 오차(평균 예측값과 실제 값의 백분율 차이)입니다. 값이 낮을수록 모델이 더 정확하다는 의미이며, 여기서 MAPE = 0은 오차가 없는 모델입니다.

**`WAPE`**  
가중 절대 백분율 오차(WAPE) – 절대 목표의 합으로 정규화된 절대 오차의 합계로, 예측값과 관측값의 전체 편차를 나타냅니다. 값이 낮을수록 모델이 더 정확하다는 의미입니다.

# 시계열 예측을 위한 알고리즘 지원
<a name="timeseries-forecasting-algorithms"></a>

Autopilot은 대상 시계열로 다음 6가지 기본 제공 알고리즘을 훈련시킵니다. 그런 다음 스태킹 앙상블 방법을 사용하여 이러한 모델 후보를 결합하여 주어진 목표 지표에 최적의 예측 모델을 생성합니다.
+ **컨벌루션 신경망 – 분위수 회귀(CNN–QR)** – CNN–QR은 인과 컨벌루션 신경망(CNN)을 사용하여 시계열 예측 전용 기계 학습 알고리즘입니다. CNN–QR은 수백 개의 시계열을 포함하는 대규모 데이터세트에서 최상으로 작동합니다.
+ **DeepAR\$1** – DeepAR\$1는 순환 신경망(RNN)을 사용하여 시계열을 예측하는 전용 기계 학습 알고리즘입니다. DeepAR\$1는 수백 개의 기능 시계열을 포함하는 대규모 데이터세트에서 최상으로 작동합니다.
+ **Prophet** – [Prophet](https://facebook.github.io/prophet/)은 비선형 추세가 연간, 주간 및 일별 계절성에 맞는 가법 모델을 기반으로 하는 인기 있는 로컬 베이지안 구조 시계열 모델입니다. Autopilot Prophet 알고리즘은 Prophet의 Python 구현의 [Prophet 클래스](https://facebook.github.io/prophet/docs/quick_start.html#python-ap)를 사용합니다. 계절적 영향이 강하고 여러 시즌의 기록 데이터를 가진 시계열에 가장 적합합니다.
+ **Non–Parametric Time Series(NPTS)** - NPTS 전용 알고리즘은 확장 가능하고 확률론적인 기준 예측자입니다. 과거 관측치로부터 샘플링하여 주어진 시계열의 미래 가치 분포를 예측합니다. NPTS는 희소하거나 간헐적인 시계열을 사용할 때 특히 유용합니다.
+ **Autoregressive Integrated Moving Average(ARIMA)** - ARIMA는 시계열 예측용으로 일반적으로 사용되는 통계 알고리즘입니다. 이 알고리즘은 입력 데이터세트에서 표준 시간 구조(패턴화된 시간 구조)를 캡처합니다. 시계열이 100개 미만인 간단한 데이터세트에 특히 유용합니다.
+ **Exponential Smoothing(ETS)** - ETS는 시계열 예측에 일반적으로 사용되는 통계 알고리즘입니다. 이 알고리즘은 시계열이 100개 미만인 간단한 데이터세트와 계절성 패턴이 있는 데이터세트에 특히 유용합니다. ETS는 시간이 지남에 따라 가중치가 기하급수적으로 감소하면서 시계열 데이터세트의 모든 관측치에 대한 가중 평균을 예측으로 계산합니다.

# 배포된 Autopilot 모델 예측
<a name="timeseries-forecasting-deploy-models"></a>

AutoML API를 사용하여 모델을 학습시킨 후 실시간 또는 배치 기반 예측을 위해 모델을 배포할 수 있습니다.

Autopilot API는 시계열 데이터를 사용하여 여러 모델 후보를 훈련시킨 다음 대상 객관적 지표에 맞는 최적의 예측 모델을 선택합니다. 모델 후보를 훈련하면 [BestCandidate](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-CandidateName)에서 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)에 대한 응답에서 최적의 후보를 찾을 수 있습니다.

이 최고 성능 모델을 사용하여 예측을 가져오려면 엔드포인트를 설정하여 대화형으로 예측을 가져오거나 배치 예측을 사용하여 관찰 배치를 예측할 수 있습니다.

**고려 사항**
+ 예측을 위한 입력 데이터를 제공할 때는 열 수, 열 헤더, 데이터 형식 등 데이터 스키마가 모델 훈련에 사용된 스키마와 동일하게 유지되어야 합니다. 동일하거나 다른 타임스탬프 범위 내의 기존 또는 새 항목 ID를 예측하여 다른 기간에 대해 예측할 수 있습니다.
+ 예측 모델은 훈련 시 입력 요청에 지정된 미래, 즉 *대상 종료일*부터 *대상 종료일 \$1 예측 기간*까지의 예측 기간에 대해 예측합니다. 모델을 사용하여 특정 날짜를 예측하려면 원래 입력 데이터와 동일한 형식으로 지정된 *대상 종료일*까지 확장된 데이터를 제공해야 합니다. 이 시나리오에서 모델은 새 대상 종료일부터 예측을 시작합니다.

  예를 들어 데이터세트에 예측 기간이 2인 1월부터 6월까지의 월간 데이터가 있는 경우 모델은 다음 2개월(7월과 8월) 동안의 대상 값을 예측합니다. 8월에 다음 2개월에 대해 예측하려는 경우 이번에는 입력 데이터가 1월부터 8월까지의 데이터여야 하며 그러면 이 모델이 다음 2개월(9월, 10월)에 대한 예측을 수행합니다.
+ 향후 데이터 포인트를 예측할 때 제공할 기록 데이터의 양에 대해 설정된 최소값은 없습니다. 시계열에서 계절적 및 반복적 패턴을 캡처할 수 있는 충분한 데이터를 포함합니다.

**Topics**
+ [실시간 예측](timeseries-forecasting-realtime.md)
+ [배치 예측](timeseries-forecasting-batch.md)

# 실시간 예측
<a name="timeseries-forecasting-realtime"></a>

실시간 예측은 즉각적인 응답이 필요한 애플리케이션이나 개별 데이터 포인트에 대한 예측과 같이 즉시 예측을 생성해야 할 때 유용합니다.

AutoML 모델을 실시간 엔드포인트로 배포하면 온디맨드로 예측을 생성하고 새 데이터를 수신하고 예측을 얻는 사이의 지연 시간을 최소화할 수 있습니다. 따라서 실시간 예측은 즉각적, 개인화 또는 이벤트 기반 예측 기능이 필요한 애플리케이션에 적합합니다.

실시간 예측의 경우 데이터세트는 입력 데이터세트의 서브셋이어야 합니다. 실시간 엔드포인트의 입력 데이터 크기는 약 6MB이고 응답 제한 시간은 60초입니다. 한 번에 하나 또는 몇 개의 항목을 가져오는 것이 좋습니다.

SageMaker API를 사용하여 AutoML 작업의 최적 후보를 검색한 다음 해당 후보를 사용하여 SageMaker AI 엔드포인트를 만들 수 있습니다.

또는 Autopilot 실험을 생성할 때 자동 배포 옵션을 선택할 수도 있습니다. 모델 자동 배포 설정에 대한 자세한 내용은 [자동 배포를 활성화하는 방법](autopilot-create-experiment-timeseries-forecasting.md#timeseries-forecasting-auto-model-deployment) 섹션을 참조하세요.

**최적의 모델 후보를 사용하여 SageMaker AI 엔드포인트를 만들려면 다음과 같이 합니다.**

1. 

**AutoML 작업의 세부 정보를 검색합니다.**

   다음 AWS CLI 명령 예제에서는 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API를 사용하여 최적의 모델 후보에 대한 정보를 포함하여 AutoML 작업에 대한 세부 정보를 가져옵니다.

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. 

**최적의 모델 후보를 위해 [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers)에서 컨테이너 정의를 추출합니다.**

   컨테이너 정의는 예측을 위해 훈련된 SageMaker AI 모델을 호스팅하는 데 사용되는 컨테이너화된 환경입니다.

   ```
   BEST_CANDIDATE=$(aws sagemaker describe-auto-ml-job-v2 \
     --auto-ml-job-name job-name 
     --region region \
     --query 'BestCandidate.InferenceContainers[0]' \
     --output json
   ```

   이 명령은 최상의 모델 후보에 대한 컨테이너 정의를 추출하여 `BEST_CANDIDATE` 변수에 저장합니다.

1. 

**최적의 후보 컨테이너 정의를 사용하여 SageMaker AI 모델을 만듭니다.**

   이전 단계의 컨테이너 정의를 사용하여 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API로 SageMaker AI 모델을 만듭니다.

   ```
   aws sagemaker create-model \
               --model-name 'your-candidate-name>' \
               --primary-container "$BEST_CANDIDATE"
               --execution-role-arn 'execution-role-arn>' \
               --region 'region>
   ```

   `--execution-role-arn` 파라미터는 추론에 모델을 사용할 때 SageMaker AI가 수임하는 IAM 역할을 지정합니다. 이 역할에 필요한 권한에 대한 자세한 내용은 [CreateModel API: 실행 역할 권한](https://docs.aws.amazon.com/) 섹션을 참조하세요.

1. 

**모델을 사용하여 SageMaker AI 엔드포인트 구성 만들기**

   다음 AWS CLI 명령은 [CreateEndpointConfig](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpointConfig.html) API를 사용하여 엔드포인트 구성을 생성합니다.

   ```
   aws sagemaker create-endpoint-config \
     --production-variants file://production-variants.json \
     --region 'region'
   ```

   `production-variants.json` 파일에 모델 이름 및 인스턴스 유형을 포함한 모델 구성이 포함된 경우.
**참고**  
실시간 예측에는 [m5.12xlarge](https://aws.amazon.com/ec2/instance-types/m5/) 인스턴스를 사용하는 것이 좋습니다.

   ```
   [
       {
         "VariantName": "variant-name",
         "ModelName": "model-name",
         "InitialInstanceCount": 1,
         "InstanceType": "m5.12xlarge"
       }
     ]
   }
   ```

1. 

**엔드포인트 구성을 사용하여 SageMaker AI 엔드포인트를 만듭니다.**

   다음 AWS CLI 예제에서는 [CreateEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateEndpoint.html) API를 사용하여 엔드포인트를 생성합니다.

   ```
   aws sagemaker create-endpoint \
               --endpoint-name 'endpoint-name>' \
               --endpoint-config-name 'endpoint-config-name' \
               --region 'region'
   ```

   [DescribeEndpoint](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeEndpoint.html) API를 사용하여 실시간 추론 엔드포인트 배포 진행 상황을 확인합니다. 다음 AWS CLI 명령을 예제로 참조하십시오.

   ```
   aws sagemaker describe-endpoint \
               --endpoint-name 'endpoint-name' \
               --region 'region'
   ```

   `EndpointStatus`가 `InService`로 변경되면 엔드포인트를 실시간 추론에 사용할 수 있습니다.

1. 

**SageMaker AI 엔드포인트를 간접적으로 호출하여 예측합니다.**

   ```
   aws sagemaker invoke-endpoint \
               --endpoint-name 'endpoint-name' \ 
               --region 'region' \
               --body file://input-data-in-bytes.json \
               --content-type 'application/json' outfile
   ```

   `input-data-in-bytes.json` 파일에 예측에 대한 입력 데이터가 포함된 경우.

# 배치 예측
<a name="timeseries-forecasting-batch"></a>

오프라인 추론이라고도 하는 배치 예측은 배치 관찰에서 모델 예측을 생성합니다. 대규모 데이터세트나 모델 예측 요청에 대한 즉각적인 응답이 필요하지 않은 경우 배치 추론을 사용하는 것이 좋습니다.

반면, 온라인 추론(실시간 추론)은 실시간으로 예측을 생성합니다.

SageMaker API를 사용하여 AutoML 작업의 최적 후보를 검색한 다음 해당 후보를 사용하여 추론할 입력 데이터 배치를 제출할 수 있습니다.

1. 

**AutoML 작업의 세부 정보를 검색합니다.**

   다음 AWS CLI 명령 예제에서는 [DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html) API를 사용하여 최적의 모델 후보에 대한 정보를 포함하여 AutoML 작업에 대한 세부 정보를 가져옵니다.

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name job-name --region region
   ```

1. 

**최적의 모델 후보를 위해 [InferenceContainers](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_AutoMLCandidate.html#sagemaker-Type-AutoMLCandidate-InferenceContainers)에서 컨테이너 정의를 추출합니다.**

   컨테이너 정의는 예측을 위해 훈련된 SageMaker AI 모델을 호스팅하는 데 사용되는 컨테이너화된 환경입니다.

   ```
   BEST_CANDIDATE=$(aws sagemaker describe-auto-ml-job-v2 \
         --auto-ml-job-name job-name 
         --region region \
         --query 'BestCandidate.InferenceContainers[0]' \
         --output json
   ```

   이 명령은 최상의 모델 후보에 대한 컨테이너 정의를 추출하여 `BEST_CANDIDATE` 변수에 저장합니다.

1. 

**최적의 후보 컨테이너 정의를 사용하여 SageMaker AI 모델을 만듭니다.**

   이전 단계의 컨테이너 정의를 사용하여 [CreateModel](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CreateModel.html) API로 SageMaker AI 모델을 만듭니다.

   ```
   aws sagemaker create-model \
         --model-name 'model-name' \
         --primary-container "$BEST_CANDIDATE"
         --execution-role-arn 'execution-role-arn>' \
         --region 'region>
   ```

   `--execution-role-arn` 파라미터는 추론에 모델을 사용할 때 SageMaker AI가 수임하는 IAM 역할을 지정합니다. 이 역할에 필요한 권한에 대한 자세한 내용은 [CreateModel API: 실행 역할 권한](https://docs.aws.amazon.com/) 섹션을 참조하세요.

1. 

**배치 변환 작업을 생성합니다.**

   다음 예제에서는 [CreateTransformJob](https://docs.aws.amazon.com/cli/latest/reference/sagemaker/create-transform-job.html) API를 사용하여 변환 작업을 생성합니다.

   ```
   aws sagemaker create-transform-job \ 
          --transform-job-name 'transform-job-name' \
          --model-name 'model-name'\
          --transform-input file://transform-input.json \
          --transform-output file://transform-output.json \
          --transform-resources file://transform-resources.json \
          --region 'region'
   ```

   입력, 출력 및 리소스 세부 정보는 별도의 JSON 파일에 정의됩니다.
   + `transform-input.json`:

     ```
     {
       "DataSource": {
         "S3DataSource": {
           "S3DataType": "S3Prefix",
           "S3Uri": "s3://my-input-data-bucket/path/to/input/data"
         }
       },
       "ContentType": "text/csv",
       "SplitType": "None"
     }
     ```
   + `transform-output.json`:

     ```
     {
       "S3OutputPath": "s3://my-output-bucket/path/to/output",
       "AssembleWith": "Line"
     }
     ```
   + `transform-resources.json`:
**참고**  
배치 예측의 경우 범용 워크로드에는 [m5.12xlarge](https://aws.amazon.com/ec2/instance-types/m5/) 인스턴스를 사용하고 빅 데이터 예측 작업에는 `m5.24xlarge` 인스턴스를 사용합니다.

     ```
     {
       "InstanceType": "instance-type",
       "InstanceCount": 1
     }
     ```

1. 

**[DescribeTransformJob](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeTransformJob.html) API를 사용하여 변환 작업의 진행 상황을 모니터링합니다.**

   다음 AWS CLI 명령을 예제로 참조하십시오.

   ```
   aws sagemaker describe-transform-job \
         --transform-job-name 'transform-job-name' \
         --region region
   ```

1. 

**배치 변환 출력을 검색합니다.**

   작업이 완료되면 예측된 결과를 `S3OutputPath`에서 확인할 수 있습니다.

   출력 파일 이름의 형식: `input_data_file_name.out`. 예를 들어, 입력 파일이 `text_x.csv`인 경우 출력 이름은 `text_x.csv.out`입니다.

   ```
   aws s3 ls s3://my-output-bucket/path/to/output/
   ```

다음 코드 예제에서는 배치 예측을 AWS CLI 위한 Python용 AWS SDK(boto3) 및의 사용을 보여줍니다.

------
#### [ AWS SDK for Python (boto3) ]

 다음 예제에서는 **Python용AWS SDK(boto3)**를 사용하여 배치 예측을 만듭니다.

```
import sagemaker 
import boto3

session = sagemaker.session.Session()

sm_client = boto3.client('sagemaker', region_name='us-west-2')
role = 'arn:aws:iam::1234567890:role/sagemaker-execution-role'
output_path = 's3://test-auto-ml-job/output'
input_data = 's3://test-auto-ml-job/test_X.csv'

best_candidate = sm_client.describe_auto_ml_job_v2(AutoMLJobName=job_name)['BestCandidate']
best_candidate_containers = best_candidate['InferenceContainers']
best_candidate_name = best_candidate['CandidateName']

# create model
reponse = sm_client.create_model(
    ModelName = best_candidate_name,
    ExecutionRoleArn = role,
    Containers = best_candidate_containers 
)

# Lauch Transform Job
response = sm_client.create_transform_job(
    TransformJobName=f'{best_candidate_name}-transform-job',
    ModelName=model_name,
    TransformInput={
        'DataSource': {
            'S3DataSource': {
                'S3DataType': 'S3Prefix',
                'S3Uri': input_data
            }
        },
        'ContentType': "text/csv",
        'SplitType': 'None'
    },
    TransformOutput={
        'S3OutputPath': output_path,
        'AssembleWith': 'Line',
    },
    TransformResources={
        'InstanceType': 'ml.m5.2xlarge',
        'InstanceCount': 1,
    },
)
```

배치 추론 작업에서는 다음 형식으로 응답을 반환합니다.

```
{'TransformJobArn': 'arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-transform-job',
 'ResponseMetadata': {'RequestId': '659f97fc-28c4-440b-b957-a49733f7c2f2',
  'HTTPStatusCode': 200,
  'HTTPHeaders': {'x-amzn-requestid': '659f97fc-28c4-440b-b957-a49733f7c2f2',
   'content-type': 'application/x-amz-json-1.1',
   'content-length': '96',
   'date': 'Thu, 11 Aug 2022 22:23:49 GMT'},
  'RetryAttempts': 0}}
```

------
#### [ AWS Command Line Interface (AWS CLI) ]

1. **최상의 후보 컨테이너 정의를 획득합니다.**

   ```
   aws sagemaker describe-auto-ml-job-v2 --auto-ml-job-name 'test-automl-job' --region us-west-2
   ```

1. **모델을 생성합니다**.

   ```
   aws sagemaker create-model --model-name 'test-sagemaker-model'
   --containers '[{
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz",
       "Environment": {
           "AUTOML_SPARSE_ENCODE_RECORDIO_PROTOBUF": "1",
           "AUTOML_TRANSFORM_MODE": "feature-transform",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "application/x-recordio-protobuf",
           "SAGEMAKER_PROGRAM": "sagemaker_serve",
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code"
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-xgboost:1.3-1-cpu-py3",
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/tuning/flicdf10v2-dpp0-xgb/test-job1E9-244-7490a1c0/output/model.tar.gz",
       "Environment": {
           "MAX_CONTENT_LENGTH": "20971520",
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv",
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,probabilities" 
       }
   }, {
       "Image": "348316444620.dkr.ecr.us-west-2.amazonaws.com/sagemaker-sklearn-automl:2.5-1-cpu-py3", 
       "ModelDataUrl": "s3://amzn-s3-demo-bucket/out/test-job1/data-processor-models/test-job1-dpp0-1-e569ff7ad77f4e55a7e549a/output/model.tar.gz", 
       "Environment": { 
           "AUTOML_TRANSFORM_MODE": "inverse-label-transform", 
           "SAGEMAKER_DEFAULT_INVOCATIONS_ACCEPT": "text/csv", 
           "SAGEMAKER_INFERENCE_INPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_OUTPUT": "predicted_label", 
           "SAGEMAKER_INFERENCE_SUPPORTED": "predicted_label,probability,labels,probabilities", 
           "SAGEMAKER_PROGRAM": "sagemaker_serve", 
           "SAGEMAKER_SUBMIT_DIRECTORY": "/opt/ml/model/code" 
       } 
   }]' \
   --execution-role-arn 'arn:aws:iam::1234567890:role/sagemaker-execution-role' \
   --region 'us-west-2'
   ```

1. **모델 변환 작업을 생성합니다.**.

   ```
   aws sagemaker create-transform-job --transform-job-name 'test-tranform-job'\
    --model-name 'test-sagemaker-model'\
    --transform-input '{
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "SplitType": "None"
       }'\
   --transform-output '{
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line"
       }'\
   --transform-resources '{
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       }'\
   --region 'us-west-2'
   ```

1. **변환 작업의 진행 상황을 확인합니다**.

   ```
   aws sagemaker describe-transform-job --transform-job-name  'test-tranform-job' --region us-west-2
   ```

   다음은 변환 작업의 응답입니다.

   ```
   {
       "TransformJobName": "test-tranform-job",
       "TransformJobArn": "arn:aws:sagemaker:us-west-2:1234567890:transform-job/test-tranform-job",
       "TransformJobStatus": "InProgress",
       "ModelName": "test-model",
       "TransformInput": {
           "DataSource": {
               "S3DataSource": {
                   "S3DataType": "S3Prefix",
                   "S3Uri": "s3://amzn-s3-demo-bucket/data.csv"
               }
           },
           "ContentType": "text/csv",
           "CompressionType": "None",
           "SplitType": "None"
       },
       "TransformOutput": {
           "S3OutputPath": "s3://amzn-s3-demo-bucket/output/",
           "AssembleWith": "Line",
           "KmsKeyId": ""
       },
       "TransformResources": {
           "InstanceType": "ml.m5.2xlarge",
           "InstanceCount": 1
       },
       "CreationTime": 1662495635.679,
       "TransformStartTime": 1662495847.496,
       "DataProcessing": {
           "InputFilter": "$",
           "OutputFilter": "$",
           "JoinSource": "None"
       }
   }
   ```

   `TransformJobStatus` 상태를 `Completed`로 변경한 후에는 `S3OutputPath`에서 추론 결과를 확인할 수 있습니다.

------

# Amazon SageMaker Autopilot 데이터 탐색 노트북
<a name="timeseries-forecasting-data-exploration-notebook"></a>

Amazon SageMaker Autopilot은 데이터세트를 자동으로 정리하고 사전 처리합니다. Amazon SageMaker Autopilot은 사용자가 데이터를 이해하고 시계열에 대한 패턴, 관계 및 이상을 발견하도록 지원하기 위해, Amazon SageMaker Autopilot은 사용자가 참조할 수 있도록 노트북 형태의 **데이터 탐색** 정적 보고서를 생성합니다.

데이터 탐색 노트북은 모든 Autopilot 작업에 대해 생성됩니다. 보고서는 Amazon S3 버킷에 저장되며 작업 출력 경로에서 액세스할 수 있습니다.

`[AutoMLJobArtifacts.DataExplorationNotebookLocation](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html#sagemaker-DescribeAutoMLJobV2-response-AutoMLJobArtifacts)`에서 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`에 대한 응답에서 데이터 탐색 노트북의 Amazon S3 접두사를 찾을 수 있습니다.

# Amazon SageMaker Autopilot으로 생성된 보고서
<a name="timeseries-forecasting-reports"></a>

Autopilot은 데이터 탐색 노트북 외에도 각 실험에 가장 적합한 모델 후보에 대한 다양한 보고서를 생성합니다.
+ 설명 가능성 보고서는 모델의 예측 수행 방식에 대한 통찰력을 제공합니다.
+ 성과 보고서는 모델의 예측 기능에 대한 정량적 평가를 제공합니다.
+ 백테스트 결과 보고서는 기록 데이터에 대한 모델 성능을 테스트한 후에 생성됩니다.

## 설명 가능성 보고서
<a name="timeseries-forecasting-explainability-report"></a>

Autopilot 설명 가능성 보고서를 통해 데이터세트의 속성이 특정 시계열(항목 및 차원 조합) 및 시점에 대한 예측에 미치는 영향을 더 잘 이해할 수 있습니다. Autopilot은 *영향 점수*라는 지표를 사용하여 각 속성의 상대적 영향을 정량화하고 예측값의 증가 또는 감소 여부를 결정합니다.

예를 들어 대상이 `sales`이고 `price` 및 `color`의 두 관련 속성이 있는 예측 시나리오를 생각해 보세요. Autopilot은 품목의 색상이 특정 품목의 판매에 큰 영향을 미치지만 다른 품목에 미치는 영향은 미미할 수 있습니다. 여름철 프로모션은 판매에 큰 영향을 주지만 겨울철 프로모션은 효과가 거의 없을 수도 있습니다.

설명 가능성 보고서는 다음과 같은 경우에만 생성됩니다.
+ 시계열 데이터세트가 추가 기능 열을 포함하거나 공휴일 캘린더와 연결된 경우.
+ 기본 모델 CNN–QR 및 DeepAR\$1가 최종 앙상블에 포함된 경우.

### 영향 점수 해석
<a name="timeseries-forecasting-explainability-impact-scores"></a>

영향 점수는 속성이 예측값에 미치는 상대적 영향을 측정합니다. 예를 들어 `price` 속성의 영향 점수가 `store location` 속성보다 두 배 높으면 품목 가격이 매장 위치보다 예측값에 미치는 영향이 두 배라는 결론을 내릴 수 있습니다.

영향 점수는 속성의 예측치 증가 또는 감소 여부에 대한 정보도 제공합니다.

영향 점수의 범위는 –1에서 1까지이며, 여기서 부호는 영향의 방향을 나타냅니다. 점수가 0이면 영향이 없음을 나타내고, 점수가 1 또는 –1에 가까우면 중대한 영향을 나타냅니다.

중요한 점은 영향 점수는 속성의 절대적 영향이 아니라 상대적 영향을 측정한다는 점입니다. 따라서 영향 점수를 사용하여 특정 속성이 모델 정확도를 향상시키는지 여부를 판단할 수는 없습니다. 속성의 영향 점수가 낮다고 해서 반드시 예측값에 미치는 영향이 적은 것은 아니며, 예측기가 사용하는 다른 속성보다 예측값에 미치는 영향이 적다는 뜻입니다.

### 설명 가능성 보고서 찾기
<a name="timeseries-forecasting-explainability-report-location"></a>

`[BestCandidate.CandidateProperties.CandidateArtifactLocations.Explainability](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-Explainability)`에서 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`에 대한 응답에 최적의 후보에 대해 생성된 설명 가능성 아티팩트의 Amazon S3 접두사를 찾을 수 있습니다.

## 모델 성능 보고서
<a name="timeseries-forecasting-model-performance-report"></a>

Autopilot 모델 품질 보고서(성과 보고서라고도 함)는 AutoML 작업에서 생성된 최적의 모델 후보(최상의 예측기)에 대한 통찰력과 품질 정보를 제공합니다. 여기에는 작업 세부 정보, 목표 함수, 정확도 지표(`wQL`, `MAPE`, `WAPE`, `RMSE`, `MASE`)에 대한 정보가 포함됩니다.

`[BestCandidate.CandidateProperties.CandidateArtifactLocations.ModelInsights](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-ModelInsights)`에서 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`에 대한 응답에 최적의 후보에 대해 생성된 모델 품질 보고서 아티팩트의 Amazon S3 접두사를 찾을 수 있습니다.

## 백테스트 결과 보고서
<a name="timeseries-forecasting-model-backtest-report"></a>

백테스트 결과는 예측 정확도와 안정성을 평가하여 시계열 예측 모델의 성능에 대한 통찰력을 제공합니다. 분석가와 데이터 사이언티스트가 기록 데이터에 대한 성능을 평가하고 보이지 않는 미래의 데이터에 대한 잠재적 성능을 이해하는 데 도움이 됩니다.

Autopilot은 백테스팅을 사용하여 파라미터를 조정하고 정확도 지표을 생성합니다. 백테스팅 중에 Autopilot은 시계열 데이터를 훈련 세트와 테스팅 세트의 두 세트로 자동으로 분할합니다. 훈련 세트는 모델을 훈련시킨 다음 테스팅 세트의 데이터 포인트에 대한 예측을 생성하는 데 사용됩니다. Autopilot은 이 테스팅 데이터세트를 사용하여 예측된 값을 테스팅 세트의 관찰된 값과 비교하여 모델의 정확도를 평가합니다.

`[BestCandidate.CandidateProperties.CandidateArtifactLocations.BacktestResults](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_CandidateArtifactLocations.html#sagemaker-Type-CandidateArtifactLocations-BacktestResults)`에서 `[DescribeAutoMLJobV2](https://docs.aws.amazon.com/sagemaker/latest/APIReference/API_DescribeAutoMLJobV2.html)`에 대한 응답에 최적의 후보에 대해 생성된 모델 품질 보고서 아티팩트의 Amazon S3 접두사를 찾을 수 있습니다.

# Autopilot용 시계열 예측 리소스 제한
<a name="timeseries-forecasting-limits"></a>

다음 표에는 Amazon SageMaker Autopilot의 시계열 예측 작업에 대한 리소스 제한과 각 제한을 조정할 수 있는지 여부가 나와 있습니다.


| **리소스 제한** | **기본 제한** | **조정 가능** | 
| --- | --- | --- | 
|  입력 데이터세트의 크기  |  30GB  |  예  | 
|  단일 Parquet 파일의 크기  |  2GB  |  아니요  | 
|  데이터세트 내 최대 행 수  |  30억  |  예  | 
|  최대 그룹화 열 수  |  5  |  아니요  | 
|  최대 수치적 특징 수  |  13  |  아니요  | 
|  최대 범주형 기능 수  |  10  |  아니요  | 
|  데이터세트당 최대 시계열 수(항목과 그룹화 열의 고유한 조합)  |  5,000,000  |  예  | 
|  최대 예측 기간  |  500  |  예  | 