CREATE SNOWFLAKE.ML.FORECAST

Cria um novo modelo de previsão a partir dos dados de treinamento fornecidos ou substitui o modelo de previsão com o mesmo nome.

Sintaxe

CREATE [ OR REPLACE ] SNOWFLAKE.ML.FORECAST [ IF NOT EXISTS ] <model_name>(
  INPUT_DATA => <input_data>,
  [ SERIES_COLNAME => '<series_colname>', ]
  TIMESTAMP_COLNAME => '<timestamp_colname>',
  TARGET_COLNAME => '<target_colname>',
  [ CONFIG_OBJECT => <config_object> ]
)
[ [ WITH ] TAG ( <tag_name> = '<tag_value>' [ , <tag_name> = '<tag_value>' , ... ] ) ]
[ COMMENT = '<string_literal>' ]
Copy

Nota

O uso de argumentos nomeados torna a ordem dos argumentos irrelevante e resulta em um código mais legível. No entanto, você também pode usar argumentos posicionais, como no exemplo a seguir:

CREATE SNOWFLAKE.ML.FORECAST <name>(
  '<input_data>', '<series_colname>', '<timestamp_colname>', '<target_colname>'
);
Copy

Parâmetros

model_name

Especifica o identificador do modelo; deve ser único para o esquema no qual o modelo é criado.

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

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 => input_data

Uma referência aos dados de entrada. O uso de uma referência permite que o processo de treinamento, executado com privilégios limitados, use seus privilégios para acessar os dados. Você pode usar uma referência a uma tabela ou exibição se seus dados já estiverem nessa forma ou pode usar uma referência de consulta para fornecer a consulta a ser executada para obter os dados.

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.

Os dados referenciados são todos os dados de treinamento consumidos pelo modelo de previsão. Se input_data contiver qualquer coluna que não seja nomeada como timestamp_colname, target_colname ou series_colname, são consideradas variáveis exógenas (recursos adicionais). A ordem das colunas nos dados de entrada não é importante.

Seus dados de entrada devem ter colunas com tipos apropriados para seu caso de uso. Consulte Exemplos para obter detalhes sobre cada caso de uso.

Caso de uso

Colunas e tipos

Série temporal única

Série temporal múltipla

  • Coluna da série: VARIANT contendo valores numéricos e texto.

  • Coluna de carimbo de data/hora: TIMESTAMP_NTZ.

  • Coluna de valor de destino: FLOAT.

Série temporal única com variáveis exógenas

Série temporal múltipla com variáveis exógenas

  • Coluna da série: VARIANT contendo valores numéricos e texto.

  • Coluna de carimbo de data/hora: TIMESTAMP_NTZ.

  • Coluna de valor de destino: FLOAT.

  • Colunas de recurso exógeno: numérico ou texto.

TIMESTAMP_COLNAME => 'timestamp_colname'

Nome da coluna que contém os carimbos de data/hora em input_data.

TARGET_COLNAME => 'target_colname'

Nome da coluna que contém o destino (valor dependente) em input_data.

Opcional:

SERIES_COLNAME => 'series_colname'

Para modelos de séries temporais múltiplas, o nome da coluna que define as séries temporais múltiplas em input_data. Esta coluna pode ser um valor de qualquer tipo ou uma matriz de valores de uma ou mais colunas, conforme mostrado em Previsão em séries múltiplas.

Se você estiver fornecendo argumentos posicionalmente, este deve ser o segundo argumento.

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.

aggregation_column

Objeto

n/a

Um objeto com pares chave-valor (ambas cadeias de caracteres) que especificam o método de agregação para colunas específicas. A chave é o nome da coluna e o valor é o método de agregação. Se uma coluna não for especificada, o modelo usará o método especificado por aggregation_numeric ou aggregation_categorical, ou o padrão para esse tipo de coluna (MEAN para numérico, MODE para categórico).

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 abaixo.

Um objeto de configuração opcional para especificar como as métricas de avaliação fora da amostra devem ser geradas.

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 a tarefa de treinamento do modelo. Isto é mais útil ao treinar múltiplas séries. Os valores suportados são:

  • 'abort': anula a operação de 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 do modelo seja bem-sucedido para outras séries temporais. Para ver quais séries falharam, use 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 TimeSeriesSplit do scikit-learn.

Chave

Tipo

Padrão

Descrição

n_splits

INTEGER

1

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

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

Exemplos

Consulte Exemplos.