다음을 통해 공유


AutoML의 시계열 예측을 위한 일정 기능

이 문서에서는 예측 회귀 모델의 정확도를 높이기 위해 AutoML에서 만드는 일정 기반 기능에 중점을 둡니다. 휴일은 모델링된 시스템의 작동 방식에 큰 영향을 미칠 수 있으므로 연휴 전, 도중 및 이후의 시간은 시리즈의 패턴을 편향할 수 있습니다. 각 휴일은 학습자가 효과를 할당할 수 있는 기존 데이터 세트에 대한 창을 생성합니다. 이는 특정 제품에 대한 높은 수요를 생성하는 휴일과 같은 시나리오에서 특히 유용할 수 있습니다. AutoML의 예측 방법에 대한 일반적인 정보는 방법 개요 문서를 참조하세요. AutoML에서 예측 모델을 학습하는 지침과 예는 시계열 예측을 위한 AutoML 설정 문서에서 찾을 수 있습니다.

기능 엔지니어링의 일환으로 AutoML은 학습 데이터에 제공된 날짜/시간 형식 열을 달력 기반 기능의 새 열로 변환합니다. 이러한 기능은 회귀 모델이 여러 주기에서 계절 패턴을 학습하는 데 도움이 될 수 있습니다. AutoML은 학습 데이터의 필수 열이므로 항상 시계열의 시간 인덱스에서 일정 기능을 만들 수 있습니다. 일정 기능은 날짜/시간 유형이 있는 다른 열에서도 만들어집니다(있는 경우). 데이터 요구 사항에 대한 자세한 내용은 AutoML에서 데이터 가이드를 사용하는 방법을 참조하세요.

AutoML은 날짜 및 시간 값을 전적으로 기반으로 하는 표준 기능과 세계의 국가 또는 지역과 관련된 휴일 기능이라는 두 가지 일정 기능 범주를 고려합니다. 문서의 나머지 부분에서 이러한 기능을 살펴보겠습니다.

표준 일정 기능

다음 표에서는 예제 출력과 함께 AutoML의 표준 일정 기능의 전체 집합을 보여 둡 수 있습니다. 이 예제에서는 datetime 표현에 표준 YY-mm-dd %H-%m-%d 형식을 사용합니다.

기능 이름 설명 출력 예: 2011-01-01 00:25:30
year 연도를 나타내는 숫자 기능 2011
year_iso ISO 8601에 정의된 ISO 연도를 나타냅니다. ISO 연도는 목요일이 있는 연도의 첫 번째 주에 시작됩니다. 예를 들어 1월 1일이 금요일인 경우 ISO 연도는 1월 4일에 시작됩니다. 따라서 ISO 연도는 달력 연도와 다를 수 있습니다. 2010
half 날짜가 올해 첫 번째 또는 하반기에 있는지 여부를 나타내는 기능입니다. 날짜가 7월 1일 이전이면 1이고 그렇지 않으면 2입니다.
quarter 지정된 날짜의 분기를 나타내는 숫자 기능입니다. 연도의 첫 번째, 두 번째, 세 번째, 네 번째 분기를 나타내는 값 1, 2, 3 또는 4를 사용합니다. 1
month 달력 월을 나타내는 숫자 기능 1에서 12까지의 값을 사용합니다. 1
month_lbl 월의 이름을 나타내는 문자열 기능입니다. ‘1월’
day 월의 날짜를 나타내는 숫자 기능입니다. 1에서 31까지의 값을 사용합니다. 1
hour 하루의 시를 나타내는 숫자 기능입니다. 0에서 23까지의 값을 사용합니다. 0
minute 하루의 분을 나타내는 숫자 기능입니다. 0에서 59까지의 값을 사용합니다. 25
second 지정된 datetime의 초를 나타내는 숫자 기능입니다. 날짜 형식만 제공되는 경우 0으로 간주됩니다. 0에서 59까지의 값을 사용합니다. 30
am_pm 시간이 아침 또는 저녁인지 여부를 나타내는 숫자 기능입니다. 0은 오후 12시 이전의 시간이며, 오후 12시 이후에는 1입니다. 0
am_pm_lbl 시간이 아침 또는 저녁인지 여부를 나타내는 문자열 기능입니다. 'am'
hour12 12시간 시계의 하루 중 시간을 나타내는 숫자 기능입니다. 상반기에는 0~12, 하반기에는 1~11 값을 사용합니다. 0
wday 요일을 나타내는 숫자 기능입니다. 0에서 6까지의 값을 사용합니다. 여기서 0은 월요일에 해당합니다. 5
wday_lbl 요일의 이름을 나타내는 문자열 기능입니다.
qday 분기 내의 날짜를 나타내는 숫자 기능입니다. 1에서 92까지의 값을 사용합니다. 1
yday 연도의 날짜를 나타내는 숫자 기능입니다. 1~365, 윤년의 경우 1~366 값을 사용합니다. 1
week ISO 8601에 정의된 ISO 주를 나타내는 숫자 기능입니다. ISO 주는 항상 월요일에 시작하여 일요일에 끝납니다. 1~52, 즉 1월 1일이 목요일에 떨어지거나 1월 1일이 수요일에 떨어지는 윤년 동안에는 53의 값이 필요합니다. 52

표준 일정 기능의 전체 집합은 모든 경우에 만들어지지 않을 수 있습니다. 생성된 집합은 시계열의 빈도 및 학습 데이터에 시간 인덱스 외에 날짜/시간 기능이 포함되어 있는지 여부에 따라 달라집니다. 다음 표에서는 다양한 열 형식에 대해 만든 기능을 보여줍니다.

열 용도 일정 기능
시간 인덱스 전체 집합은 다른 기능과 높은 상관 관계가 있는 달력 기능을 뺀 값입니다. 예를 들어 시계열 빈도가 매일인 경우 유용한 정보를 제공하지 않으므로 매일보다 더 세분화된 빈도가 있는 모든 기능이 제거됩니다.
날짜/시간 열 필터링 Year, Month, Day, DayOfWeek, DayOfYear, QuarterOfYear, WeekOfMonth, Hour, Minute, Second로 구성된 축소된 집합입니다. 열이 시간 없이 날짜인 경우 Hour, Minute, Second는 0이 됩니다.

휴일 기능

AutoML은 필요에 따라 특정 국가 또는 지역의 휴일을 나타내는 기능을 만들 수 있습니다. 이러한 기능은 ISO 국가 번호를 허용하는 country_or_region_for_holidays 매개 변수를 사용하여 AutoML에서 구성됩니다.

참고 항목

휴일 기능은 매일 빈도의 시계열에 대해서만 만들 수 있습니다.

다음 표에는 휴일 기능이 요약되어 있습니다.

기능 이름 설명
Holiday 날짜가 국가/지역 공휴일인지 지정하는 문자열 기능입니다. 휴일의 일부 범위 내의 일도 표시됩니다.
isPaidTimeOff 지정된 국가 또는 지역의 "유급 휴가"인 경우 값 1을 사용하는 이진 기능입니다.

AutoML은 휴일 정보의 원본으로 Azure Open Datasets를 사용합니다. 자세한 내용은 PublicHolidays 설명서를 참조하세요.

휴일 기능 생성을 더 잘 이해하려면 다음 예제 데이터를 고려하세요.

sample_data

이 데이터에 대한 미국 휴일 기능을 만들기 위해 다음 코드 샘플과 같이 예측 설정에서 country_or_region_for_holiday를 'US'로 설정합니다.

from azure.ai.ml import automl

# create a forcasting job
forecasting_job = automl.forecasting(
    compute='test_cluster',   # Name of single or multinode AML compute infrastructure created by user
    experiment_name=exp_name, # name of experiment 
    training_data=sample_data,  
    target_column_name='demand',
    primary_metric='NormalizedRootMeanSquaredError',
    n_cross_validations=3,
    enable_model_explainability=True
)

# set custom forecast settings
forecasting_job.set_forecast_settings(
    time_column_name='timeStamp',
    country_or_region_for_holidays='US'
)

생성된 휴일 기능은 다음 출력과 같습니다.

sample_data_output

생성된 기능에는 열 이름 앞에 _automl_ 접두사가 추가되어 있습니다. AutoML은 일반적으로 이 접두사를 사용하여 입력 기능을 엔지니어링된 기능과 구분합니다.

다음 단계