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>!DETECT_ANOMALIES para detectar anomalias.
Importante
Aviso legal. Esta função baseada em ML do Snowflake Cortex é alimentada por tecnologia de aprendizado de máquina. A tecnologia de aprendizado de máquina e os resultados fornecidos podem ser imprecisos, inadequados ou tendenciosos. As decisões baseadas em resultados de aprendizado de máquina, incluindo aquelas incorporadas em pipelines automáticos, devem ter supervisão humana e processos de revisão para garantir que o conteúdo gerado pelo modelo seja preciso. As consultas de função baseadas em ML do Snowflake Cortex serão tratadas como qualquer outra consulta SQL e podem ser consideradas metadados.
Metadados. Quando você usa funções baseadas em ML do Snowflake Cortex, o Snowflake registra mensagens de erro genéricas retornadas por uma função ML, além do que é mencionado em campos de metadados. Esses logs de erros nos ajudam a solucionar problemas que surgem e a melhorar essas funções para melhor atender você.
Para obter mais informações, consulte FAQ sobre confiança e segurança do Snowflake AI.
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>(
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>' ]
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.
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
on_error
'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>!SHOW_TRAINING_LOGS do modelo.
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>
}
]
Parâmetros¶
LIKE 'pattern'
Opcionalmente, 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%' ...
. padrão: sem valor (nenhuma filtragem é aplicada à saída).
[ 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
semdb_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 oschema_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¶
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 algoritmo do modelo |
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. Os modelos descartados não podem ser recuperados; eles devem ser recriados.
Sintaxe¶
DROP SNOWFLAKE.ML.ANOMALY_DETECTION [IF EXISTS] <name>;
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
ouschema_name.name
), o comando procura o modelo no esquema atual para a sessão.
<nome>!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 que rotula cada linha dos dados de entrada como anômala ou não.
Sintaxe¶
<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>' ]
)
Nota
name
é o objeto que você cria executando o comando CREATE SNOWFLAKE.ML.ANOMALY_DETECTION.
Argumentos¶
Obrigatório:
INPUT_DATA => reference_to_data_to_analyze
Uma referência à tabela, exibição ou consulta que retorna os dados a serem analisados.
TIMESTAMP_COLNAME => 'timestamp_column_name'
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'
O nome da coluna que contém os dados a serem analisados (tipo 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 => config_object
Um OBJECT contendo pares chave-valor usados para configurar o trabalho de detecção da anomalia.
Chave
Tipo
Padrão
Descrição
prediction_interval
0,99
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.
on_error
'ABORT'
Cadeia de caracteres (constante) que especifica o tratamento do erro para a tarefa de detecção de anomalia. Isto é mais útil ao detectar anomalias em múltiplas séries. Os valores suportados são:
'abort'
: anule a operação se um erro for encontrado em qualquer série temporal.'skip'
: ignore qualquer série temporal em que a detecção de anomalias encontre um erro. Isso permite que a detecção de anomalias seja bem-sucedida em outras séries temporais. As séries que falharam estão ausentes da saída.
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. |
LOWER_BOUND |
FLOAT |
O limite inferior do valor dentro do intervalo de previsão. Valores menores que isso são sinalizados como anomalias. |
UPPER_BOUND |
FLOAT |
O limite superior do valor dentro do intervalo de previsão. Valores maiores do que isso são sinalizados como anomalias. |
IS_ANOMALY |
BOOLEAN |
Verdadeiro se o valor for uma anomalia; se não for, falso. |
PERCENTILE |
FLOAT |
O percentil correspondente do valor Y observado dado o intervalo de previsão. Se o percentil estiver fora de Se o campo |
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 aqui.
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>!EXPLAIN_FEATURE_IMPORTANCE¶
Retorna a importância relativa do recurso para cada recurso usado pelo modelo.
Sintaxe¶
<name>!EXPLAIN_FEATURE_IMPORTANCE();
Saída¶
Coluna |
Tipo |
Descrição |
---|---|---|
SERIES |
Valor da série (presente apenas se o modelo foi treinado com várias séries temporais) |
|
RANK |
A classificação de importância de um recurso para uma série específica |
|
FEATURE_NAME |
O nome do recurso usado para treinar o modelo. |
|
IMPORTANCE_SCORE |
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 |
A origem do recurso, uma das seguintes:
|
<nome>!SHOW_TRAINING_LOGS¶
Retorna logs do treinamento do modelo. A saída é diferente de NULL somente quando 'ON_ERROR' = 'SKIP'
é definido no CONFIG_OBJECT
de treinamento.
Sintaxe¶
<name>!SHOW_TRAINING_LOGS();
Saída¶
A coluna SERIES está presente apenas para modelos de série múltipla. Os modelos de série única não possuem esta coluna.
Coluna |
Tipo |
Descrição |
---|---|---|
SERIES |
Valor da série. Presente apenas se o modelo foi treinado com várias séries temporais. |
|
LOGS |
Um log de erros encontrados durante o treinamento. O valor da chave |
Exemplos¶
Consulte Detecção de anomalias.