FORECAST

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

예측 모델은 단일 또는 다중 시계열에 대한 예측을 생성합니다. CREATE SNOWFLAKE.ML.FORECAST 를 사용하여 예측 모델을 생성 및 학습한 다음 모델의 <model_name>!FORECAST 메서드를 사용하여 예측을 생성합니다. <model_name>!EXPLAIN_FEATURE_IMPORTANCE 메서드는 학습 데이터의 각 특징이 예측에 미치는 영향에 대한 정보를 제공합니다.

CREATE SNOWFLAKE.ML.FORECAST

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

구문

CREATE [ OR REPLACE ] SNOWFLAKE.ML.FORECAST [ IF NOT EXISTS ] <model_name>(
    INPUT_DATA => <input_data>,
    [SERIES_COLNAME => '<series_colname>',]
    TIMESTAMP_COLNAME => '<timestamp_colname>',
    TARGET_COLNAME => '<target_colname>')
  [ [ 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

매개 변수

model_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 에서 다중 시계열을 정의하는 열의 이름입니다. 이 열은 다중 계열에 대한 예측 에 표시된 것처럼 임의 유형의 값 또는 하나 이상의 다른 열의 값으로 구성된 배열일 수 있습니다.

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

사용법 노트

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

섹션을 참조하십시오.

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

모델의 버전으로, 현재는 1임

comment

모델에 대한 설명

owner

모델을 소유한 역할

DROP SNOWFLAKE.ML.FORECAST

현재 스키마 또는 지정된 스키마에서 지정된 모델을 제거합니다.

구문

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

매개 변수

name

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

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

사용법 노트

삭제된 모델은 복구할 수 없으며, 다시 만들어야 합니다.

<model_name>!FORECAST

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

구문

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

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

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

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

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

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

<model_name>!FORECAST(
  SERIES_VALUE => <series>,
  FORECASTING_PERIODS => <forecasting_periods>,
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  [CONFIG_OBJECT => <config_object>]
);
Copy

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

<model_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, 1). 기본값은 0.95로, 미래 시점의 95%가 예측 결과에서 [lower_bound, upper_bound] 구간 내에 속할 것으로 예상된다는 의미입니다.

출력

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

각 외생 변수에 대한 추가 열도 있습니다. 이들의 수, 이름, 유형은 다양하므로 여기에는 포함되지 않습니다.

타입

설명

SERIES

VARIANT

이 행의 예측 값에 대한 계열(다중 계열 예측의 경우)

TS

TIMESTAMP_NTZ

타임스탬프

FORECAST

FLOAT

예측 목표값

LOWER_BOUND

FLOAT

예측 구간의 하한

UPPER_BOUND

FLOAT

예측 구간의 상한

<model_name>!EXPLAIN_FEATURE_IMPORTANCE

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

구문

<model_name>!EXPLAIN_FEATURE_IMPORTANCE();
Copy

출력

타입

설명

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

섹션을 참조하십시오.