CREATE SNOWFLAKE.ML.ANOMALY_DETECTION

Cria um novo modelo de detecção de anomalias ou substitui um existente usando os dados de treinamento fornecidos.

Sintaxe

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

Parâmetros

model_name

Especifica o identificador (nome_do_modelo) do objeto de detecção de anomalia; deve ser único para o esquema no qual o objeto é criado.

Além disso, o identificador deve começar com um caractere alfabético e não pode conter espaços ou caracteres especiais, a menos que toda a cadeia de caracteres do identificador esteja entre aspas duplas (por exemplo, "My object"). Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas. Para obter mais detalhes, consulte Requisitos para identificadores.

Argumentos do construtor

Obrigatório:

INPUT_DATA => reference_to_training_data

Especifica uma referência à tabela, exibição ou consulta que retorna os dados de treinamento para o modelo.

Para criar esta referência, você pode usar a palavra-chave TABLE com o nome da tabela, nome da exibição ou consulta, ou você pode chamar a função SYSTEM$REFERENCE ou SYSTEM$QUERY_REFERENCE.

TIMESTAMP_COLNAME => 'timestamp_column_name'

Especifica o nome da coluna que contém os carimbos de data/hora (TIMESTAMP_NTZ) nos dados da série temporal.

TARGET_COLNAME => 'target_column_name'

Especifica o nome da coluna que contém os dados (NUMERIC ou FLOAT) a serem analisados.

LABEL_COLNAME => 'label_column_name'

Especifica o nome da coluna que contém os rótulos dos dados. Os rótulos são valores booleanos (verdadeiro/falso) que indicam se uma determinada linha é uma anomalia conhecida. Se você não tiver dados rotulados, passe uma cadeia de caracteres vazia ('') para este argumento.

Opcional:

SERIES_COLNAME => 'series_column_name'

Nome da coluna que contém o identificador da série (para série temporal múltipla). Esta coluna deve ser uma VARIANT pois pode ser qualquer tipo de valor ou uma combinação de valores de mais de uma coluna em uma matriz.

CONFIG_OBJECT => config_object

Um OBJECT contendo pares chave-valor usados para configurar a tarefa de treinamento do modelo.

Chave

Tipo

Padrão

Descrição

aggregation_categorical

STRING

'MODE'

O método de agregação para recursos categóricas. Os valores suportados são:

  • 'MODE': O valor mais frequente.

  • 'FIRST': O valor mais antigo.

  • 'LAST': O valor mais recente.

aggregation_numeric

STRING

'MEAN'

O método de agregação para recursos numéricos. Os valores suportados são:

  • 'MEAN': A média dos valores.

  • 'MEDIAN': O valor médio.

  • MODE: O valor mais frequente.

  • 'MIN': O menor valor.

  • 'MAX': O maior valor.

  • 'SUM': O total dos valores.

  • 'FIRST': O valor mais antigo.

  • 'LAST': O valor mais recente.

aggregation_target

STRING

O mesmo que aggregation_numeric, ou 'MEAN', se não especificado

O método de agregação para o valor destino. Os valores suportados são:

  • 'MEAN': A média dos valores.

  • 'MEDIAN': O valor médio.

  • MODE: O valor mais frequente.

  • 'MIN': O menor valor.

  • 'MAX': O maior valor.

  • 'SUM': O total dos valores.

  • 'FIRST': O valor mais antigo.

  • 'LAST': O valor mais recente.

evaluate

BOOLEAN

TRUE

Se as métricas de avaliação devem ser geradas. Se TRUE, modelos adicionais serão treinados para validação cruzada usando os parâmetros em evaluation_config.

evaluation_config

OBJECT

Consulte Configuração de avaliação.

Um objeto de configuração opcional para especificar como as métricas de avaliação fora da amostra devem ser geradas. Veja a próxima seção.

frequency

STRING

n/a

A frequência da série temporal. Se não for especificado, o modelo infere a frequência. O valor deve ser uma cadeia de caracteres que represente um período de tempo, como '1 day'. As unidades compatíveis incluem segundos, minutos, horas, dias, semanas, meses, trimestres e anos. É possível usar o singular (“hora”) ou o plural (“horas”) para o nome do intervalo, mas não pode abreviá-lo.

on_error

STRING

'ABORT'

Cadeia de caracteres (constante) que especifica o método de tratamento de erros para treinamento. Isto é mais útil ao treinar múltiplas séries. Os valores suportados são:

  • 'abort': anula o treinamento se um erro for encontrado em qualquer série temporal.

  • 'skip': ignore qualquer série temporal em que o treinamento encontre um erro. Isso permite que o treinamento seja bem-sucedido para outras séries temporais. Para ver quais séries falharam durante o treinamento do modelo, chame o método <nome_do_modelo>!SHOW_TRAINING_LOGS do modelo.

Configuração de avaliação

O objeto evaluation_config contém pares chave-valor que configuram a validação cruzada. Esses parâmetros são do validador cruzado do scikit-learn TimeSeriesSplit.

Chave

Tipo

Padrão

Descrição

n_splits

INTEGER

5

Número de divisões.

max_train_size

INTEGER ou NULL (no máximo).

NULL

Tamanho máximo para um único conjunto de treinamento.

test_size

INTEGER ou NULL.

NULL

Usado para limitar o tamanho do conjunto de teste.

gap

INTEGER

0

Número de amostras a serem excluídas do fim de cada conjunto de treinamento antes do conjunto de teste.

prediction_interval

FLOAT

0,95

O intervalo de previsão usado no cálculo de métricas de intervalo.

Notas de uso

  • Se os nomes das colunas especificados pelos argumentos TIMESTAMP_COLNAME, TARGET_COLNAME ou LABEL_COLNAME não existirem na tabela, exibição ou consulta especificada pelo argumento INPUT_DATA, ocorre um erro.

  • A replicação não é compatível para instâncias de classe, exceto para instâncias da classe CUSTOM_CLASSIFIER.

Exemplos

Para um exemplo representativo, veja o exemplo de detecção de anomalias.