CREATE SNOWFLAKE.ML.ANOMALY_DETECTION

사용자가 제공한 훈련 데이터를 사용하여 새로운 변칙 감지 모델을 생성하거나 기존 모델을 바꿉니다.

구문

CREATE [ OR REPLACE ] SNOWFLAKE.ML.ANOMALY_DETECTION <model_name>(
  INPUT_DATA => <reference_to_training_data>,
  [ SERIES_COLNAME => '<series_column_name>', ]
  TIMESTAMP_COLNAME => '<timestamp_column_name>',
  TARGET_COLNAME => '<target_column_name>',
  LABEL_COLNAME => '<label_column_name>',
  [ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
Copy

매개 변수

model_name

변칙 감지기 오브젝트의 식별자(model_name)를 지정하며, 오브젝트가 생성되는 스키마에 대해 고유해야 합니다.

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

생성자 인자

필수:

INPUT_DATA => reference_to_training_data

모델을 위한 학습 데이터를 반환하는 테이블, 뷰 또는 쿼리에 대한 참조 를 지정합니다.

이 참조를 생성하려면 테이블 이름, 뷰 이름 또는 쿼리와 함께 TABLE 키워드 를 사용하거나 SYSTEM$REFERENCE 또는 SYSTEM$QUERY_REFERENCE 함수를 호출하면 됩니다.

TIMESTAMP_COLNAME => 'timestamp_column_name'

시계열 데이터에서 타임스탬프(TIMESTAMP_NTZ)가 포함된 열의 이름을 지정합니다.

TARGET_COLNAME => 'target_column_name'

분석할 데이터를 포함한 열의 이름을 지정합니다(NUMERIC 또는 FLOAT).

LABEL_COLNAME => 'label_column_name'

데이터에 대한 레이블을 포함한 열의 이름을 지정합니다. 레이블은 주어진 행이 알려진 변칙인지 여부를 나타내는 부울(true/false) 값입니다. 레이블이 지정된 데이터가 없는 경우 이 인자에 대해 빈 문자열('')을 전달하십시오.

선택 사항:

SERIES_COLNAME => 'series_column_name'

(다중 시계열의 경우) 계열의 식별자를 포함하는 열의 이름입니다. 이 열은 어떤 유형의 값이든 될 수 있거나 배열에 있는 둘 이상의 열에서 가져온 값의 조합일 수 있으므로 VARIANT여야 합니다.

CONFIG_OBJECT => config_object

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

타입

기본값

설명

aggregation_categorical

STRING

'MODE'

카테고리형 특징에 대한 집계 메서드입니다. 지원되는 값은 다음과 같습니다.

  • 'MODE': 가장 빈번한 값입니다.

  • 'FIRST': 가장 빠른 값입니다.

  • 'LAST': 최신 값입니다.

aggregation_numeric

STRING

'MEAN'

숫자형 특징에 대한 집계 메서드입니다. 지원되는 값은 다음과 같습니다.

  • 'MEAN': 값의 평균입니다.

  • 'MEDIAN': 중간값입니다.

  • MODE: 가장 빈번한 값입니다.

  • 'MIN': 가장 작은 값입니다.

  • 'MAX': 가장 큰 값입니다.

  • 'SUM': 값의 총합입니다.

  • 'FIRST': 가장 빠른 값입니다.

  • 'LAST': 최신 값입니다.

aggregation_target

STRING

aggregation_numeric 과 동일하거나, 지정되지 않을 경우 'MEAN' 입니다.

목표 값에 대한 집계 메서드입니다. 지원되는 값은 다음과 같습니다.

  • 'MEAN': 값의 평균입니다.

  • 'MEDIAN': 중간값입니다.

  • MODE: 가장 빈번한 값입니다.

  • 'MIN': 가장 작은 값입니다.

  • 'MAX': 가장 큰 값입니다.

  • 'SUM': 값의 총합입니다.

  • 'FIRST': 가장 빠른 값입니다.

  • 'LAST': 최신 값입니다.

evaluate

BOOLEAN

TRUE

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

evaluation_config

OBJECT

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

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

frequency

STRING

해당 없음

시계열의 빈도입니다. 지정하지 않으면 모델이 빈도를 추론합니다. 값은 '1 day' 와 같이 기간을 나타내는 문자열이어야 합니다. 지원되는 단위에는 초, 분, 시간, 일, 주, 월, 분기, 년이 있습니다. 간격 이름에는 단수형(“hour”) 또는 복수형(“hours”)을 사용할 수 있지만, 약어를 사용할 수는 없습니다.

on_error

STRING

'ABORT'

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

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

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

평가 구성

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

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

사용법 노트

  • TIMESTAMP_COLNAME, TARGET_COLNAME 또는 LABEL_COLNAME 인자로 지정된 열 이름이 INPUT_DATA 인자로 지정된 테이블, 뷰 또는 쿼리에 존재하지 않을 경우 오류가 발생합니다.

  • 복제CUSTOM_CLASSIFIER 클래스의 인스턴스를 제외한 클래스 인스턴스에 대해 지원되지 않습니다.

대표적인 예제는 변칙 감지 예제 를 참조하십시오.