FORECAST

정규화된 이름: SNOWFLAKE.ML.FORECAST

예측 모델은 단일 시계열 또는 다중 시계열에 대한 예측을 생성합니다. CREATE SNOWFLAKE.ML.FORECAST 를 사용하여 예측 모델을 생성 학습한 다음 모델의 <name>!FORECAST 메서드를 사용하여 예측을 생성합니다. <name>!EXPLAIN_FEATURE_IMPORTANCE 메서드는 학습 데이터의 각 특징이 예측에 미치는 영향에 대한 정보를 제공합니다. <name>!SHOW_TRAINING_LOGS 메서드는 모델이 적합하지 않은 모든 시계열에 대한 오류 메시지를 제공합니다. 메서드는 샘플 외부 데이터에 대한 평가 메트릭을 제공합니다.

중요

법적 고지. 이 Snowflake Cortex ML 기반 함수는 머신 러닝 기술을 기반으로 합니다. 제공된 머신 러닝 기술 및 결과는 부정확하거나 부적절하거나 편향될 수 있습니다. 자동 파이프라인에 내장된 결과를 포함하여 머신 러닝 출력을 기반으로 한 의사 결정에는 모델 생성 콘텐츠가 정확하도록 보장하기 위해 사람의 감독 및 검토 프로세스가 있어야 합니다. Snowflake Cortex ML 기반 함수 쿼리는 다른 SQL 쿼리로 처리되며 메타데이터 로 간주될 수 있습니다.

메타데이터. Snowflake Cortex ML 기반 함수를 사용하면 Snowflake는 메타데이터 필드 에 언급된 내용 외에 ML 함수에서 반환된 일반 오류 메시지를 로그에 기록합니다. 이러한 오류 로그는 발생하는 문제를 해결하고 이러한 함수를 개선하여 더 나은 서비스를 제공하는 데 도움이 됩니다.

CREATE SNOWFLAKE.ML.FORECAST

사용자가 제공하는 학습 데이터에서 새 예측 모델을 생성하거나 동일한 이름의 예측 모델을 바꿉니다.

구문

CREATE [ OR REPLACE ] SNOWFLAKE.ML.FORECAST [ IF NOT EXISTS ] <name>(
  INPUT_DATA => <input_data>,
  [ SERIES_COLNAME => '<series_colname>', ]
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  TARGET_COLNAME => '<target_colname>',
  [ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
Copy

참고

명명된 인자를 사용하면 인자 순서에 관계없이 코드를 더 쉽게 읽을 수 있습니다. 하지만 다음 예제에서처럼 위치 인자를 사용할 수도 있습니다.

CREATE SNOWFLAKE.ML.FORECAST <name>(
  '<input_data>', '<series_colname>', '<timestamp_colname>', '<target_colname>'
);
Copy

매개 변수

name

모델에 대한 식별자를 지정하는데, 모델이 생성된 스키마에 대해 고유한 식별자여야 합니다.

모델 식별자가 (db_name.schema_name.name 또는 schema_name.name 형식으로) 정규화되지 않은 경우 이 명령은 세션의 현재 스키마에서 모델을 생성합니다.

또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예: "My object")로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.

생성자 인자

필수:

INPUT_DATA => input_data

입력 데이터에 대한 참조. 참조를 사용하면 제한된 권한으로 실행되는 학습 프로세스에서 사용자의 권한을 사용해 데이터에 액세스하도록 할 수 있습니다. 데이터가 해당 양식에 이미 있는 경우 테이블 또는 뷰에 대한 참조를 사용하거나, 쿼리 참조 를 사용하여 데이터를 얻기 위해 실행할 쿼리를 제공할 수 있습니다.

참조 데이터는 예측 모델에서 사용하는 전체 학습 데이터입니다. input_datatimestamp_colname, target_colname 또는 series_colname 으로 명명되지 않은 열이 포함된 경우 이들은 외생 변수(추가 특징)로 간주됩니다. 입력 데이터의 열 순서는 중요하지 않습니다.

입력 데이터에는 사용 사례에 알맞은 유형의 열이 있어야 합니다. 각 사용 사례에 대한 자세한 내용은 섹션을 참조하십시오.

사용 사례

열 및 유형

단일 시계열

다중 시계열

외생 변수가 있는 단일 시계열

외생 변수가 있는 다중 시계열

TIMESTAMP_COLNAME => 'timestamp_colname'

input_data 에 타임스탬프가 포함된 열의 이름입니다.

TARGET_COLNAME => 'target_colname'

input_data 에 대상(종속 값)이 포함된 열의 이름입니다.

선택 사항:

SERIES_COLNAME => 'series_colname'

다중 시계열 모델의 경우 input_data 에서 다중 시계열을 정의하는 열의 이름입니다. 이 열은 다중 계열에 대한 예측 에 표시된 것처럼 임의 유형의 값 또는 하나 이상의 다른 열의 값으로 구성된 배열일 수 있습니다.

인자를 위치에 따라 제공하는 경우 이것은 두 번째 인자여야 합니다.

CONFIG_OBJECT => config_object

모델 학습 작업 구성에 사용되는 키-값 페어를 포함한 OBJECT 입니다.

타입

기본값

설명

on_error

STRING

'ABORT'

모델 학습 작업의 오류 처리 방법을 지정하는 문자열(상수)입니다. 이는 여러 계열을 학습할 때 가장 유용합니다. 지원되는 값은 다음과 같습니다.

  • 'abort': 시계열에서 오류가 발생하면 학습 작업을 중단합니다.

  • 'skip': 학습에서 오류가 발생하는 시계열을 건너뜁니다. 이를 통해 다른 시계열에 대한 모델 학습이 성공할 수 있습니다. 어떤 계열이 실패했는지 확인하려면 모델의 <name>!SHOW_TRAINING_LOGS 메서드를 사용하십시오.

evaluate

BOOLEAN

TRUE

평가 메트릭을 생성해야 하는지 여부입니다. TRUE인 경우 evaluation_config 의 매개 변수를 사용하여 교차 검증을 위해 추가 모델이 학습됩니다.

evaluation_config

OBJECT

아래의 평가 구성 섹션을 참조하십시오.

샘플 외부 평가 메트릭을 생성하는 방법을 지정하는 선택적 구성 오브젝트입니다.

평가 구성

evaluation_config 오브젝트에는 교차 검증을 구성하는 키-값 페어가 포함되어 있습니다. 이러한 매개 변수는 scikit-learn의 TimeSeriesSplit 에서 가져온 것입니다.

타입

기본값

설명

n_splits

INTEGER

5

분할 수입니다.

max_train_size

INTEGER 또는 NULL입니다(최대값 없음).

NULL

단일 학습 세트의 최대 크기입니다.

test_size

INTEGER 또는 NULL입니다.

NULL

테스트 세트의 크기를 제한하는 데 사용됩니다.

gap

INTEGER

0

테스트 세트 전에 각 학습 세트의 끝에서 제외할 샘플 수입니다.

prediction_interval

FLOAT

0.95

간격 메트릭 계산에 사용되는 예측 간격입니다.

사용법 노트

클래스 인스턴스의 복제 는 현재 지원되지 않습니다.

SHOW SNOWFLAKE.ML.FORECAST

모든 예측 모델을 나열합니다.

구문

SHOW SNOWFLAKE.ML.FORECAST [ LIKE <pattern> ]
  [ IN
      {
        ACCOUNT                  |

        DATABASE                 |
        DATABASE <database_name> |

        SCHEMA                   |
        SCHEMA <schema_name>     |
        <schema_name>
      }
   ]
Copy

매개 변수

LIKE 'pattern'

오브젝트 이름으로 명령 출력을 선택적으로 필터링합니다. 이 필터는 SQL 와일드카드 문자(%_) 지원과 함께 대/소문자를 구분하지 않는 패턴 일치를 사용합니다.

예를 들어, 다음 패턴은 같은 결과를 반환합니다.

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...

. 기본값: 값 없음(출력에 필터링이 적용되지 않음).

[ IN ... ]

선택적으로 명령의 범위를 지정합니다. 다음 중 하나를 지정합니다.

ACCOUNT

전체 계정의 레코드를 반환합니다.

DATABASE, . DATABASE db_name

현재 사용 중인 데이터베이스 또는 지정된 데이터베이스(db_name)의 레코드를 반환합니다.

db_name 없이 DATABASE 를 지정하고 사용 중인 데이터베이스가 없는 경우 키워드는 출력에 아무런 영향도 주지 않습니다.

SCHEMA, . SCHEMA schema_name, . schema_name

현재 사용 중인 스키마 또는 지정된 스키마(schema_name)의 레코드를 반환합니다.

데이터베이스가 사용 중이거나 정규화된 schema_name (예: db.schema)을 지정하는 경우 SCHEMA 는 선택 사항입니다.

사용 중인 데이터베이스가 없으면 SCHEMA 를 지정해도 출력에 아무런 영향도 주지 않습니다.

기본값: 세션에 현재 사용 중인 데이터베이스가 있는지 여부에 따라 다릅니다.

  • 데이터베이스: DATABASE 가 기본값입니다(즉, 이 명령은 데이터베이스에서 볼 권한이 있는 오브젝트를 반환함).

  • 데이터베이스 없음: ACCOUNT 가 기본값입니다(즉, 이 명령은 계정에서 볼 권한이 있는 오브젝트를 반환함).

출력

명령 출력은 다음 열에 모델 속성 및 메타데이터를 제공합니다.

설명

created_on

모델이 생성된 날짜 및 시간

name

모델의 이름

데이터베이스_이름

모델이 저장되는 데이터베이스

스키마_이름

모델이 저장되는 스키마

current_version

모델 알고리즘의 버전

comment

모델에 대한 설명

owner

모델을 소유한 역할

DROP SNOWFLAKE.ML.FORECAST

현재 스키마 또는 지정된 스키마에서 지정된 모델을 제거합니다. 삭제된 모델은 복구할 수 없으며, 다시 만들어야 합니다.

구문

DROP SNOWFLAKE.ML.FORECAST [ IF EXISTS ] <name>;
Copy

매개 변수

name

삭제할 모델의 식별자를 지정합니다. 식별자에 공백, 특수 문자 또는 대/소문자가 혼합된 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.

모델 식별자가 (db_name.schema_name.name 또는 schema_name.name 형식으로) 정규화되지 않은 경우 이 명령은 세션의 현재 스키마에서 모델을 찾습니다.

<name>!FORECAST

이전에 학습된 모델 name 에서 예측을 생성합니다.

구문

필요한 인자는 모델이 학습된 사용 사례에 따라 다릅니다.

외생 변수가 없는 단일 계열 모델의 경우:

<name>!FORECAST(
  FORECASTING_PERIODS => <forecasting_periods>,
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

외생 변수가 있는 단일 계열 모델의 경우:

<name>!FORECAST(
  INPUT_DATA => <input_data>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

외생 변수가 없는 다중 계열 모델의 경우:

<name>!FORECAST(
  SERIES_VALUE => <series>,
  FORECASTING_PERIODS => <forecasting_periods>,
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

외생 변수가 있는 다중 계열 모델의 경우:

<name>!FORECAST(
  SERIES_VALUE => <series>,
  SERIES_COLNAME => <series_colname>,
  INPUT_DATA => <input_data>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [ CONFIG_OBJECT => <config_object> ]
);
Copy

인자

필수:

모든 사용 사례에 다음 인자가 모두 필요한 것은 아닙니다.

FORECASTING_PERIODS => forecasting_periods

외생 변수가 없는 예측에 필요합니다.

예측할 다음 단계의 수입니다. 단계 사이의 간격은 학습 중에 모델이 유추합니다.

INPUT_DATA => input_data

외생 변수가 있는 예측에 필요합니다.

모델을 학습할 때 input_data 로 전달된 외생 변수(사용자가 추가로 제공한 특징)의 미래 타임스탬프와 값을 포함하는 테이블, 뷰 또는 쿼리에 대한 참조 입니다. 참조를 사용하면 제한된 권한으로 실행되는 예측 프로세스에서 사용자의 권한을 사용하여 데이터에 액세스할 수 있습니다. 열은 이 인자와 원래 외생 학습 데이터 간에 이름으로 매칭됩니다.

TIMESTAMP_COLNAME => 'timestamp_colname'

외생 변수가 있는 예측에 필요합니다.

타임스탬프를 포함한 input_data 에 있는 열의 이름입니다.

SERIES_COLNAME => 'series_colname'

외생 변수가 있는 다중 계열 예측에 필요합니다.

계열을 지정하는 input_data 에 있는 열의 이름입니다.

SERIES_VALUE => series

다중 계열 예측에 필요합니다.

예측할 시계열입니다. 단일 값(예: 'Series A'::variant) 또는 VARIANT 일 수 있지만, 모델 학습의 기반이 된 계열을 지정해야 합니다. 지정하지 않으면 학습된 계열이 전부 예측됩니다.

선택 사항:

CONFIG_OBJECT => config_object

예측 작업 구성에 사용되는 키-값 페어를 포함한 OBJECT 입니다.

타입

기본값

설명

prediction_interval

FLOAT

0.95

0.0보다 크거나 같고 1.0보다 작은 값입니다. 기본값은 0.95로, 미래 시점의 95%가 예측 결과에서 [lower_bound, upper_bound] 구간 내에 속할 것으로 예상된다는 의미입니다.

on_error

STRING

'ABORT'

오류 처리 방법을 지정하는 문자열(상수)입니다. 이는 여러 계열을 예측할 때 가장 유용합니다. 지원되는 값은 다음과 같습니다.

  • 'abort': 시계열에서 오류가 발생하면 모델 예측 작업을 중단합니다.

  • 'skip': 예측에서 오류가 발생하는 시계열을 건너뜁니다. 이를 통해 다른 시계열에 대한 예측이 성공할 수 있습니다. 실패한 계열에서 모델 출력에서 빠지게 됩니다.

출력

SERIES 열은 다중 계열 예측에만 존재합니다. 단일 계열 예측에는 이 열이 없습니다.

타입

설명

SERIES

VARIANT

계열 값(모델이 다중 시계열로 학습된 경우)

TS

TIMESTAMP_NTZ

타임스탬프입니다.

FORECAST

FLOAT

예측 목표값입니다.

LOWER_BOUND

FLOAT

예측 구간의 하한입니다.

UPPER_BOUND

FLOAT

예측 구간의 상한입니다.

<name>!EXPLAIN_FEATURE_IMPORTANCE

모델에서 사용하는 각 특징의 상대적인 특징 중요도를 반환합니다.

구문

<name>!EXPLAIN_FEATURE_IMPORTANCE();
Copy

출력

SERIES 열은 다중 계열 예측에만 존재합니다. 단일 계열 예측에는 이 열이 없습니다.

타입

설명

SERIES

VARIANT

계열 값(모델이 다중 시계열로 학습된 경우)

RANK

INTEGER

특정 계열에 대한 특징의 중요도 순위입니다.

FEATURE_NAME

VARCHAR

모델 학습에 사용되는 특징의 이름입니다. aggregated_endogenous_features 는 대상 변수의 변환으로 파생된 모든 특징을 나타냅니다.

IMPORTANCE_SCORE

FLOAT

특징의 중요도 점수: [0, 1]의 값으로, 0은 가능한 가장 낮은 중요도이고 1은 가능한 가장 높은 중요도입니다.

FEATURE_TYPE

VARCHAR

특징의 출처입니다. 다음 중 하나:

  • user_provided: 사용자가 제공한 특징 데이터입니다.

  • derived_from_timestamp: 타임스탬프 데이터에서 파생된 주기적 특징(예: 일, 주 또는 월)입니다.

  • derived_from_endogenous: 대상 변수의 변환에서 파생된 특징입니다.

<name>!SHOW_EVALUATION_METRICS

시계열 교차 검증을 사용하여 생성된 샘플 외부 평가 메트릭을 반환합니다. 메트릭은 모델 구성 중 CONFIG_OBJECTevaluate=TRUE 인 경우에만 사용할 수 있습니다(이것이 기본값임).

구문

<name>!SHOW_EVALUATION_METRICS();
Copy

출력

SERIES 열은 다중 계열 예측에만 존재합니다. 단일 계열 예측에는 이 열이 없습니다.

타입

설명

SERIES

VARIANT

계열 값(모델이 다중 시계열로 학습된 경우에만 존재함)

ERROR_METRIC

VARCHAR

사용된 오차 메트릭의 이름입니다. 이 메서드는 다음 메트릭을 반환합니다.

점 메트릭:

간격 메트릭: 이 메트릭은 평가 구성prediction_interval 인자를 사용합니다.

  • COVERAGE_INTERVAL: 예측 구간에 속하는 실제 값의 비율입니다.

  • WINKLER_ALPHA: 윙클러 점수 입니다.

LOGS

VARIANT

오류 또는 경고 메시지가 포함되어 있습니다.

<name>!SHOW_TRAINING_LOGS

모델 학습에서 로그를 반환합니다. 학습 CONFIG_OBJECT'ON_ERROR' = 'SKIP' 이 설정된 경우에만 출력이NULL이 아니며, 그렇지 않으면 전체 모델이 학습에 실패합니다.

구문

<name>!SHOW_TRAINING_LOGS();
Copy

출력

SERIES 열은 다중 계열 모델에만 존재합니다. 단일 계열 모델에는 이 열이 없습니다.

타입

설명

SERIES

VARIANT

계열 값(모델이 다중 시계열로 학습된 경우)

LOGS

OBJECT

학습 중에 발생한 오류가 포함된 오브젝트입니다. 현재 유일한 키는 오류 배열인 Errors 입니다. 오류가 발생하지 않은 경우 로그 오브젝트는 NULL입니다.

섹션을 참조하십시오.