ANOMALY_DETECTION

Nome totalmente qualificado: SNOWFLAKE.ML.ANOMALY_DETECTION

A detecção de anomalias permite que você detecte exceções em seus dados de série temporal usando um algoritmo de aprendizado de máquina. Você usa CREATE SNOWFLAKE.ML.ANOMALY_DETECTION para criar e treinar o modelo de detecção e, em seguida, usa o método <nome_do_modelo>!DETECT_ANOMALIES para detectar anomalias.

CREATE SNOWFLAKE.ML.ANOMALY_DETECTION

Cria um objeto que você usa para detectar anomalias ou substitui o objeto de detecção de anomalias com o mesmo nome.

Sintaxe

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>'
)
Copy

Parâmetros

name

Especifica o identificador (nome) 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, chame 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.

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 de instâncias de classe não é suportada atualmente.

SHOW SNOWFLAKE.ML.ANOMALY_DETECTION

Lista todos os modelos de detecção de anomalias.

Sintaxe

SHOW SNOWFLAKE.ML.ANOMALY_DETECTION [ LIKE <pattern> ];
                                    [ IN
                                      {
                                        ACCOUNT                  |

                                        DATABASE                 |
                                        DATABASE <database_name> |

                                        SCHEMA                   |
                                        SCHEMA <schema_name>     |
                                        <schema_name>
                                      }
                                    ]
Copy

Parâmetros

LIKE 'pattern'

Filtra a saída do comando pelo nome do objeto. O filtro utiliza correspondência de padrão que não diferencia maiúsculas e minúsculas com suporte para caracteres curinga SQL (% e _).

Por exemplo, os seguintes padrões retornam os mesmos resultados:

... LIKE '%testing%' ...
... LIKE '%TESTING%' ...
[ IN ... ]

Opcionalmente, especifica o escopo do comando. Especifique um dos seguintes:

ACCOUNT

Retorna registros para toda a conta.

DATABASE, . DATABASE db_name

Retorna registros do banco de dados atual em uso ou de um banco de dados especificado (db_name).

Se você especificar DATABASE sem db_name e nenhum banco de dados estiver em uso, a palavra-chave não terá efeito sobre a saída.

SCHEMA, . SCHEMA schema_name, . schema_name

Retorna registros do esquema atual em uso ou de um esquema especificado (schema_name).

SCHEMA é opcional se um banco de dados estiver em uso ou se você especificar o schema_name totalmente qualificado (por exemplo, db.schema).

Se nenhum banco de dados estiver em uso, a especificação SCHEMA não terá efeito sobre a saída.

Padrão: depende se a sessão tem ou não um banco de dados em uso no momento:

  • Banco de dados: DATABASE é o padrão (ou seja, o comando retorna os objetos nos quais você tem privilégios para visualizar no banco de dados).

  • Sem banco de dados: ACCOUNT é o padrão (ou seja, o comando retorna os objetos que você tem privilégios de visualização em sua conta).

Saída

A saída do comando fornece propriedades de modelo e metadados nas colunas a seguir:

Coluna

Descrição

created_on

Data e hora em que o modelo foi criado

name

Nome do modelo

database_name

Banco de dados no qual o modelo está armazenado

schema_name

Esquema no qual o modelo está armazenado

current_version

A versão do modelo, atualmente 1

comment

Comentário para o modelo

owner

Nome da função proprietária do modelo

DROP SNOWFLAKE.ML.ANOMALY_DETECTION

Remove o modelo especificado do esquema atual ou especificado.

Sintaxe

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

Parâmetros

name

Especifica o identificador do modelo a ser descartado. Se o identificador contiver espaços, caracteres especiais ou caracteres com letras maiúsculas e minúsculas, toda a cadeia de caracteres deve ser delimitada por aspas duplas. Os identificadores delimitados por aspas duplas também diferenciam letras maiúsculas de minúsculas.

Se o identificador do modelo não estiver totalmente qualificado (na forma de db_name.schema_name.name ou schema_name.name), o comando procura o modelo no esquema atual para a sessão.

Notas de uso

  • Os modelos descartados não podem ser recuperados; eles devem ser recriados.

<nome_do_modelo>!DETECT_ANOMALIES

Detecta e relata anomalias nos dados de entrada passados para o método. Este é um método do objeto de detecção de anomalia que você cria executando o comando CREATE SNOWFLAKE.ML.ANOMALY_DETECTION.

O método retorna uma tabela contendo uma linha para cada anomalia detectada.

Sintaxe

<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>' ]
)
Copy

Nota

model_name é o objeto que você cria executando o comando CREATE SNOWFLAKE.ML.ANOMALY_DETECTION.

Argumentos

Obrigatório:

INPUT_DATA => reference_to_data_to_analyze

Especifica uma referência à tabela, exibição ou consulta que retorna os dados a serem analisados.

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 a serem analisados (NUMERIC ou FLOAT).

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 valores de várias colunas em uma matriz.

CONFIG_OBJECT => configuration_object

OBJECT especificando as definições de configuração para este objeto.

Você pode usar uma constante de objeto ou a função OBJECT_CONSTRUCT para construir esse objeto.

Neste objeto, você pode definir as seguintes chaves e valores:

Chave

Descrição do valor

'prediction_interval'

Valor entre 0 e 1 que especifica a porcentagem das observações que devem ser marcadas como anomalias:

  • Para uma detecção de anomalias menos rigorosa (ou seja, identificando menos observações marcadas como anomalias), especifique um valor mais alto.

  • Para uma detecção de anomalias mais rigorosa (ou seja, identificando mais observações como anomalias), reduza este valor.

Valor padrão: 0,99 (1% dos dados serão marcados como anomalias.)

Saída

A função retorna as seguintes colunas:

Nome da coluna

Tipo de dados

Descrição

TS

TIMESTAMP_NTZ

Os carimbos de data/hora dos dados

Y

FLOAT

Os valores da série temporal

FORECAST

FLOAT

O valor previsto no carimbo de data/hora

A função usa esses valores para criar os intervalos de previsão que identificam pontos de dados anômalos.

LOWER_BOUND

FLOAT

O limite inferior do valor dentro do intervalo de previsão

Valores menores que isso serão sinalizados como anomalias.

UPPER_BOUND

FLOAT

O limite superior do valor dentro do intervalo de previsão

Valores maiores do que isso serão sinalizados como anomalias.

IS_ANOMALY

BOOLEAN

Verdadeiro se o valor for uma anomalia; caso contrário, falso.

PERCENTILE

FLOAT

O percentil correspondente do intervalo de previsão para o valor Y

Se o percentil estiver fora de ((1-intervalo_de_previsão)/2, (1-intervalo_de_previsão)/2 + intervalo_de_previsão, o valor não será sinalizado como uma anomalia.

Se o campo prediction_interval não for especificado no objeto de configuração, o intervalo de previsão padrão será 0,99. Por exemplo, se o percentil for 0,96 e o intervalo de previsão for 0,95, o valor observado será sinalizado como uma anomalia.

DISTANCE

FLOAT

O múltiplo do desvio padrão da coluna FORECAST (pontuação z)

Notas de uso

  • As colunas para os dados especificados no comando CREATE SNOWFLAKE.ML.ANOMALY_DETECTION (no argumento do construtor INPUT_DATA) deve corresponder às colunas dos dados especificados no argumento INPUT_DATAdeste método.

    Por exemplo, se você tiver passado o argumento SERIES_COLNAME para o comando CREATE SNOWFLAKE.ML.ANOMALY_DETECTION, você também deverá passar o argumento SERIES_COLNAME para este método. Se você tiver omitido o argumento SERIES_COLNAME no comando, você deverá omitir esse argumento ao chamar esse método.

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

<nome_do_modelo>!EXPLAIN_FEATURE_IMPORTANCE

Retorna a importância relativa do recurso para cada recurso usado pelo modelo.

Sintaxe

<model_name>!EXPLAIN_FEATURE_IMPORTANCE();
Copy

Saída

Coluna

Tipo

Descrição

SERIES

VARIANT

Valor da série (presente apenas se o modelo foi treinado com várias séries temporais)

RANK

INTEGER

A classificação de importância de um recurso para uma série específica

FEATURE_NAME

VARCHAR

O nome do recurso usado para treinar o modelo. aggregated_endogenous_features representa todos os recursos derivados como transformações de sua variável de destino.

IMPORTANCE_SCORE

FLOAT

A pontuação de importância do recurso: um valor em [0, 1], com 0 sendo a importância mais baixa possível e 1 a mais alta.

FEATURE_TYPE

VARCHAR

A origem do recurso, uma das seguintes:

  • user_provided

  • derived_from_timestamp

  • derived_from_endogenous

Exemplos

Consulte Detecção de anomalias.