ANOMALY_DETECTION¶
정규화된 이름: SNOWFLAKE.ML.ANOMALY_DETECTION
변칙 검색을 통해 머신 러닝 알고리즘을 사용하여 시계열 데이터에서 이상값을 감지할 수 있습니다. CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 을 사용하여 감지 모델을 만들고 학습시킨 다음 <model_name>!DETECT_ANOMALIES 메서드를 사용하여 변칙을 검색합니다.
CREATE SNOWFLAKE.ML.ANOMALY_DETECTION¶
변칙 검색에 사용하는 오브젝트를 만들거나 동일한 이름의 변칙 검색 오브젝트를 바꿉니다.
구문¶
CREATE [ OR REPLACE ] SNOWFLAKE.ML.ANOMALY_DETECTION <name>(
[ SERIES_COLNAME => '<series_column_name>' , ]
INPUT_DATA => <reference_to_training_data>,
TIMESTAMP_COLNAME => '<timestamp_column_name>',
TARGET_COLNAME => '<target_column_name>',
LABEL_COLNAME => '<label_column_name>'
)
매개 변수¶
name
변칙 검색 오브젝트의 식별자(이름)를 지정하며, 오브젝트가 생성되는 스키마에 대해 고유해야 합니다.
또한, 식별자는 알파벳 문자로 시작해야 하며 전체 식별자 문자열을 큰따옴표(예:
"My object"
)로 묶지 않는 한 공백이나 특수 문자를 포함할 수 없습니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다. 자세한 내용은 식별자 요구 사항 섹션을 참조하십시오.
생성자 인자¶
필수:
INPUT_DATA => reference_to_training_data
모델을 위한 학습 데이터를 반환하는 테이블, 뷰 또는 쿼리에 대한 참조 를 지정합니다.
이 참조를 생성하려면 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여야 합니다.
SHOW SNOWFLAKE.ML.ANOMALY_DETECTION¶
모든 변칙 검색 모델을 나열합니다.
구문¶
SHOW SNOWFLAKE.ML.ANOMALY_DETECTION [ LIKE <pattern> ];
[ IN
{
ACCOUNT |
DATABASE |
DATABASE <database_name> |
SCHEMA |
SCHEMA <schema_name> |
<schema_name>
}
]
매개 변수¶
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.ANOMALY_DETECTION¶
현재 스키마 또는 지정된 스키마에서 지정된 모델을 제거합니다.
구문¶
DROP SNOWFLAKE.ML.ANOMALY_DETECTION [IF EXISTS] <name>;
매개 변수¶
name
삭제할 모델의 식별자를 지정합니다. 식별자에 공백, 특수 문자 또는 대/소문자가 혼합된 문자가 포함된 경우 전체 문자열을 큰따옴표로 묶어야 합니다. 큰따옴표로 묶인 식별자도 대/소문자를 구분합니다.
모델 식별자가 (
db_name.schema_name.name
또는schema_name.name
형식으로) 정규화되지 않은 경우 이 명령은 세션의 현재 스키마에서 모델을 찾습니다.
사용법 노트¶
삭제된 모델은 복구할 수 없으며, 다시 만들어야 합니다.
<model_name>!DETECT_ANOMALIES¶
메서드에 전달된 입력 데이터의 변칙을 검색하고 그에 대해 보고합니다. 이것은 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 명령을 실행하여 생성하는 변칙 검색기 오브젝트의 메서드입니다.
이 메서드는 검색된 각 변칙에 대한 행이 포함된 테이블을 반환합니다.
구문¶
<model_name>!DETECT_ANOMALIES(
INPUT_DATA => <reference_to_data_to_analyze>
, TIMESTAMP_COLNAME => '<timestamp_column_name>'
, TARGET_COLNAME => '<target_column_name>'
[ , CONFIG_OBJECT => <configuration_object> ]
[ , SERIES_COLNAME => '<series_column_name>' ]
)
참고
model_name
은 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 명령을 실행하여 생성하는 오브젝트입니다.
인자¶
필수:
INPUT_DATA => reference_to_data_to_analyze
분석할 데이터를 반환하는 테이블, 뷰 또는 쿼리에 대한 참조 를 지정합니다.
TIMESTAMP_COLNAME => 'timestamp_column_name'
시계열 데이터에서 타임스탬프(TIMESTAMP_NTZ)가 포함된 열의 이름을 지정합니다.
TARGET_COLNAME => 'target_column_name'
분석할 데이터가 포함된 열의 이름을 지정합니다(NUMERIC 또는 FLOAT).
선택 사항:
SERIES_COLNAME => 'series_column_name'
(다중 시계열의 경우) 계열의 식별자를 포함하는 열의 이름입니다. 이 열은 어떤 유형의 값이든 될 수 있거나 배열에 있는 여러 열의 값일 수 있으므로 VARIANT여야 합니다.
CONFIG_OBJECT => configuration_object
이 오브젝트에 대한 구성 설정을 지정하는 OBJECT 입니다.
오브젝트 상수 또는 OBJECT_CONSTRUCT 함수 중 하나를 사용하여 이 오브젝트를 생성할 수 있습니다.
이 오브젝트에서 다음 키와 값을 설정할 수 있습니다.
키
값에 대한 설명
'prediction_interval'
변칙으로 표시해야 하는 관측값의 백분율을 지정하는 0과 1 사이의 값입니다.
덜 엄격한 변칙 검색(즉, 변칙으로 표시된 더 적은 수의 관측값 식별)의 경우 더 높은 값을 지정합니다.
더 엄격한 변칙 검색(즉, 더 많은 관측값을 변칙으로 식별)의 경우 이 값을 줄이십시오.
기본값: 0.99(데이터의 1%가 변칙으로 표시됨)
출력¶
이 함수는 다음 열을 반환합니다.
열 이름 |
데이터 타입 |
설명 |
---|---|---|
TS |
TIMESTAMP_NTZ |
데이터의 타임스탬프 |
Y |
FLOAT |
시계열의 값 |
FORECAST |
FLOAT |
타임스탬프의 예측 값 이 함수는 이러한 값을 사용하여 변칙적인 데이터 요소를 식별하는 예측 구간을 생성합니다. |
LOWER_BOUND |
FLOAT |
예측 구간 내 값의 하한 이보다 낮은 값은 변칙으로 플래그 지정됩니다. |
UPPER_BOUND |
FLOAT |
예측 구간 내 값의 상한 이보다 높은 값은 변칙으로 플래그 지정됩니다. |
IS_ANOMALY |
BOOLEAN |
값이 변칙이면 True이고 그렇지 않으면 False임 |
PERCENTILE |
FLOAT |
Y 값에 대한 예측 구간의 해당 백분위수 백분위수가 ((1-prediction_interval)/2, (1-prediction_interval)/2 + prediction_interval을 벗어나면 값이 변칙으로 플래그 지정되지 않습니다.
|
DISTANCE |
FLOAT |
FORECAST 열에서 가져온 표준 편차의 배수(z-점수). |
사용법 노트¶
(INPUT_DATA 생성자 인자에서) CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 명령에 지정된 데이터의 열은 이 데이터의 INPUT_DATA 인자에 지정된 데이터에 대한 열과 일치해야 합니다.
예를 들어, SERIES_COLNAME 인자를 CREATE SNOWFLAKE.ML.ANOMALY_DETECTION 명령에 전달한 경우 SERIES_COLNAME 인자도 이 메서드에 전달해야 합니다. 명령에서 SERIES_COLNAME 인자를 생략했다면 이 메서드를 호출할 때 해당 인자를 생략해야 합니다.
TIMESTAMP_COLNAME 또는 TARGET_COLNAME 인자로 지정된 열 이름이 INPUT_DATA 인자로 지정된 테이블, 뷰 또는 쿼리에 존재하지 않을 경우 오류가 발생합니다.
<model_name>!EXPLAIN_FEATURE_IMPORTANCE¶
모델에서 사용하는 각 특징의 상대적인 특징 중요도를 반환합니다.
구문¶
<model_name>!EXPLAIN_FEATURE_IMPORTANCE();
출력¶
열 |
타입 |
설명 |
---|---|---|
SERIES |
계열 값(모델이 다중 시계열로 학습된 경우에만 존재함) |
|
RANK |
특정 계열에 대한 특징의 중요도 순위 |
|
FEATURE_NAME |
모델 학습에 사용되는 특징의 이름입니다. |
|
IMPORTANCE_SCORE |
특징의 중요도 점수: [0, 1]의 값으로, 0은 가능한 가장 낮은 중요도이고 1은 가능한 가장 높은 중요도입니다. |
|
FEATURE_TYPE |
특징의 원본으로, 다음 중 하나입니다.
|