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>' ]
매개 변수¶
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
'MODE'
카테고리형 특징에 대한 집계 메서드입니다. 지원되는 값은 다음과 같습니다.
'MODE'
: 가장 빈번한 값입니다.'FIRST'
: 가장 빠른 값입니다.'LAST'
: 최신 값입니다.
aggregation_numeric
'MEAN'
숫자형 특징에 대한 집계 메서드입니다. 지원되는 값은 다음과 같습니다.
'MEAN'
: 값의 평균입니다.'MEDIAN'
: 중간값입니다.MODE
: 가장 빈번한 값입니다.'MIN'
: 가장 작은 값입니다.'MAX'
: 가장 큰 값입니다.'SUM'
: 값의 총합입니다.'FIRST'
: 가장 빠른 값입니다.'LAST'
: 최신 값입니다.
aggregation_target
aggregation_numeric
과 동일하거나, 지정되지 않을 경우'MEAN'
입니다.목표 값에 대한 집계 메서드입니다. 지원되는 값은 다음과 같습니다.
'MEAN'
: 값의 평균입니다.'MEDIAN'
: 중간값입니다.MODE
: 가장 빈번한 값입니다.'MIN'
: 가장 작은 값입니다.'MAX'
: 가장 큰 값입니다.'SUM'
: 값의 총합입니다.'FIRST'
: 가장 빠른 값입니다.'LAST'
: 최신 값입니다.
evaluate
TRUE
평가 메트릭을 생성해야 하는지 여부입니다. TRUE인 경우
evaluation_config
의 매개 변수를 사용하여 교차 검증을 위해 추가 모델이 훈련됩니다.evaluation_config
평가 구성 섹션을 참조하십시오.
샘플 외부 평가 메트릭을 생성하는 방법을 지정하는 선택적 구성 오브젝트입니다. 다음 섹션을 참조하십시오.
frequency
해당 없음
시계열의 빈도입니다. 지정하지 않으면 모델이 빈도를 추론합니다. 값은
'1 day'
와 같이 기간을 나타내는 문자열이어야 합니다. 지원되는 단위에는 초, 분, 시간, 일, 주, 월, 분기, 년이 있습니다. 간격 이름에는 단수형(“hour”) 또는 복수형(“hours”)을 사용할 수 있지만, 약어를 사용할 수는 없습니다.on_error
'ABORT'
학습 시 오류 처리 방법을 지정하는 문자열(상수)입니다. 이는 여러 계열을 학습할 때 가장 유용합니다. 지원되는 값은 다음과 같습니다.
'abort'
: 시계열에서 오류가 발생하면 학습을 중단합니다.'skip'
: 학습에서 오류가 발생하는 시계열을 건너뜁니다. 이를 통해 다른 시계열에 대한 학습이 성공할 수 있습니다. 모델 학습 중에 어떤 계열이 실패했는지 확인하려면 모델의 <model_name>!SHOW_TRAINING_LOGS 메서드를 호출하십시오.
평가 구성¶
evaluation_config
오브젝트에는 교차 검증을 구성하는 키-값 페어가 포함되어 있습니다. 이러한 매개 변수는 scikit-learn TimeSeriesSplit 교차 검증기에서 가져온 것입니다.
키 |
타입 |
기본값 |
설명 |
---|---|---|---|
|
5 |
분할 수입니다. |
|
|
INTEGER 또는 NULL입니다(최대값 없음). |
NULL |
단일 학습 세트의 최대 크기입니다. |
|
INTEGER 또는 NULL입니다. |
NULL |
테스트 세트의 크기를 제한하는 데 사용됩니다. |
|
0 |
테스트 세트 전에 각 학습 세트의 끝에서 제외할 샘플 수입니다. |
|
|
0.95 |
간격 메트릭 계산에 사용되는 예측 간격입니다. |
사용법 노트¶
TIMESTAMP_COLNAME, TARGET_COLNAME 또는 LABEL_COLNAME 인자로 지정된 열 이름이 INPUT_DATA 인자로 지정된 테이블, 뷰 또는 쿼리에 존재하지 않을 경우 오류가 발생합니다.
복제 는 CUSTOM_CLASSIFIER 클래스의 인스턴스를 제외한 클래스 인스턴스에 대해 지원되지 않습니다.
예¶
대표적인 예제는 변칙 감지 예제 를 참조하십시오.