Configurar a AutoML para treinar um modelo de previsão de séries temporítuis com python

APLICA-SE A:Python SDK azureml v1

Neste artigo, você aprende a configurar o treino AutoML para modelos de previsão de séries temporais com Azure Machine Learning automatizado ML no Azure Machine Learning Python SDK.

Para tal, terá de:

  • Prepare dados para modelação de séries temporência.
  • Configure parâmetros específicos da série de tempo num AutoMLConfig objeto.
  • Executar previsões com dados da série de tempo.

Para uma experiência de código baixo, consulte o Tutorial: Previsão de procura com machine learning automatizado para um exemplo de previsão de séries temporizadas usando ML automatizado no estúdio Azure Machine Learning.

Ao contrário dos métodos clássicos das séries de tempo, em ML automatizado, os valores das séries de tempo passadas são "apostados" para se tornarem dimensões adicionais para o regressor juntamente com outros preditores. Esta abordagem incorpora múltiplas variáveis contextuais e a sua relação entre si durante o treino. Uma vez que vários fatores podem influenciar uma previsão, este método alinha-se bem com cenários reais de previsão do mundo. Por exemplo, ao prever vendas, interações de tendências históricas, taxas de câmbio e preço, tudo em conjunto impulsionam o resultado das vendas.

Pré-requisitos

Para este artigo que precisa,

Dados de formação e validação

A diferença mais importante entre um tipo de tarefa de regressão de previsão e tipo de tarefa de regressão dentro de ML automatizado é incluir uma funcionalidade nos seus dados de treino que representa uma série de tempo válida. Uma série de tempo regular tem uma frequência bem definida e consistente e tem um valor em cada ponto de amostra num período de tempo contínuo.

Importante

Ao treinar um modelo para a previsão de valores futuros, certifique-se de que todas as funcionalidades utilizadas no treino podem ser utilizadas ao executar previsões para o seu horizonte pretendido.

Por exemplo, ao criar uma previsão da procura, incluindo uma característica do preço atual das ações, poderia aumentar maciçamente a precisão da formação. No entanto, se pretender prever com um horizonte longo, poderá não ser capaz de prever com precisão os valores de ações futuros correspondentes a futuros pontos de série sonora, e a precisão do modelo poderá sofrer.

Pode especificar dados de formação separados e dados de validação diretamente no AutoMLConfig objeto. Saiba mais sobre o AutoMLConfig.

Para a previsão de séries de tempo, apenas a Validação da Cruz de Origem Rolante (ROCV) é utilizada para validação por padrão. ROCV divide a série em dados de treino e validação usando um ponto de tempo de origem. Deslizar a origem no tempo gera as dobras de validação cruzada. Esta estratégia preserva a integridade dos dados das séries temporítem e elimina o risco de fuga de dados.

Diagrama que mostra dobras de validação cruzada separa os conjuntos de treino e validação com base no tamanho do passo de validação cruzada.

Passe os seus dados de formação e validação como um conjunto de dados para o parâmetro training_data. Desaver o número de dobras de validação cruzada com o parâmetro n_cross_validations e desave o número de períodos entre duas dobras de validação cruzada consecutivas com cv_step_size. Também pode deixar os dois parâmetros vazios e o AutoML irá defini-los automaticamente.

APLICA-SE A:Python SDK azureml v1

automl_config = AutoMLConfig(task='forecasting',
                             training_data= training_data,
                             n_cross_validations="auto", # Could be customized as an integer
                             cv_step_size = "auto", # Could be customized as an integer
                             ...
                             **time_series_settings)

Também pode trazer os seus próprios dados de validação, aprender mais em configurar divisões de dados e validação cruzada em AutoML.

Saiba mais sobre como o AutoML aplica validação cruzada para evitar que os modelos de ajuste excessivos sejam adaptados.

Experiência de configuração

O AutoMLConfig objeto define as configurações e dados necessários para uma tarefa automatizada de aprendizagem automática de máquinas. A configuração para um modelo de previsão é semelhante à configuração de um modelo de regressão padrão, mas certos modelos, opções de configuração e passos de exibição existem especificamente para dados da série de tempo.

Modelos suportados

A aprendizagem automática de máquinas tenta automaticamente diferentes modelos e algoritmos como parte do processo de criação e afinação do modelo. Como utilizador, não há necessidade de especificar o algoritmo. Para a previsão de experiências, tanto as séries temporais nativas como os modelos de aprendizagem profunda fazem parte do sistema de recomendação.

Dica

Os modelos tradicionais de regressão também são testados como parte do sistema de recomendação para as experiências de previsão. Consulte uma lista completa dos modelos suportados na documentação de referência SDK.

Definições de configuração

À semelhança de um problema de regressão, define-se parâmetros de treino padrão como tipo de tarefa, número de iterações, dados de treino e número de validações cruzadas. As tarefas de previsão requerem que os time_column_name parâmetros e forecast_horizon os parâmetros configuram a sua experiência. Se os dados incluiem séries de tempo múltiplas, tais como dados de vendas de várias lojas ou dados energéticos em diferentes estados, o ML automatizado deteta-o automaticamente e define o time_series_id_column_names parâmetro (pré-visualização) para si. Também pode incluir parâmetros adicionais para configurar melhor o seu percurso, consulte a secção de configurações opcionais para obter mais detalhes sobre o que pode ser incluído.

Importante

A identificação automática da série de tempo está atualmente em visualização pública. Esta versão de pré-visualização é fornecida sem um acordo de nível de serviço. Algumas funcionalidades poderão não ser suportadas ou poderão ter capacidades limitadas. Para obter mais informações, veja Termos Suplementares de Utilização para Pré-visualizações do Microsoft Azure.

Nome do parâmetro Descrição
time_column_name Utilizado para especificar a coluna de datas nos dados de entrada utilizados para a construção da série de tempo e inferição da sua frequência.
forecast_horizon Define quantos períodos para a frente gostaria de prever. O horizonte está em unidades da frequência da série-tempo. As unidades baseiam-se no intervalo de tempo dos seus dados de treino, por exemplo, mensais, semanais que o meteorologista deve prever.

O seguinte código,

  • Aproveita a ForecastingParameters classe para definir os parâmetros de previsão para o seu treino de experiência
  • Define o time_column_nameday_datetime campo no conjunto de dados.
  • Define o forecast_horizon a 50 para prever para todo o conjunto de testes.
from azureml.automl.core.forecasting_parameters import ForecastingParameters

forecasting_parameters = ForecastingParameters(time_column_name='day_datetime', 
                                               forecast_horizon=50,
                                               freq='W')
                                              

Estes forecasting_parameters são então passados para o seu objeto padrão AutoMLConfig juntamente com o forecasting tipo de tarefa, métrica primária, critérios de saída e dados de treino.

from azureml.core.workspace import Workspace
from azureml.core.experiment import Experiment
from azureml.train.automl import AutoMLConfig
import logging

automl_config = AutoMLConfig(task='forecasting',
                             primary_metric='normalized_root_mean_squared_error',
                             experiment_timeout_minutes=15,
                             enable_early_stopping=True,
                             training_data=train_data,
                             label_column_name=label,
                             n_cross_validations="auto", # Could be customized as an integer
                             cv_step_size = "auto", # Could be customized as an integer
                             enable_ensembling=False,
                             verbosity=logging.INFO,
                             forecasting_parameters=forecasting_parameters)

A quantidade de dados necessários para formar com sucesso um modelo de previsão com ML automatizado é influenciada pelo forecast_horizon, n_cross_validationse target_lags ou target_rolling_window_size valores especificados quando configura o seu AutoMLConfig.

A fórmula que se segue calcula a quantidade de dados históricos que seriam necessários para construir as características das séries de tempo.

Dados mínimos históricos necessários: (2x forecast_horizon) + + +n_cross_validations máx(máx),target_lagstarget_rolling_window_size

É Error exception levantada uma série no conjunto de dados que não satisfaça a quantidade necessária de dados históricos para as definições relevantes especificadas.

Etapas de exibição

Em todas as experiências automatizadas de aprendizagem automática de máquinas, as técnicas automáticas de escala e normalização são aplicadas aos seus dados por padrão. Estas técnicas são tipos de caracterização que ajudam certos algoritmos que são sensíveis às características em escalas diferentes. Saiba mais sobre os passos de exibição padrão na Exibição em AutoML

No entanto, os seguintes passos são executados apenas para forecasting tipos de tarefas:

  • Detetar a frequência da amostra de séries temporárias (por exemplo, hora, dia, semanalmente) e criar novos registos para pontos de tempo ausentes para tornar a série contínua.
  • Imputa valores em falta no alvo (via preenchimento de frente) e colunas de características (utilizando valores medianos de coluna)
  • Criar funcionalidades baseadas em identificadores de séries de tempo para permitir efeitos fixos em diferentes séries
  • Criar funcionalidades baseadas no tempo para ajudar na aprendizagem de padrões sazonais
  • Codificar variáveis categóricas para quantidades numéricas
  • Detete as séries tempotacionárias não estacionárias e difere-as automaticamente para mitigar o impacto das raízes unitárias.

Para ver a lista completa de possíveis funcionalidades criadas a partir de dados da série de tempo, consulte a Classe TimeIndexFeaturizer.

Nota

As etapas automatizadas de aprendizagem automática (normalização de recurso, manuseamento de dados em falta, conversão de texto em numérico, etc.) tornam-se parte do modelo subjacente. Ao utilizar o modelo para previsões, aplicam-se automaticamente os mesmos passos de apresentação aplicados durante o treino.

Personalizar a exibição

Também tem a opção de personalizar as suas definições de exibição para garantir que os dados e funcionalidades que são utilizados para treinar o seu modelo ML resultam em previsões relevantes.

As personalizações suportadas para forecasting tarefas incluem:

Personalização Definição
Atualização do propósito da coluna Sobrepor o tipo de característica detetada automaticamente para a coluna especificada.
Atualização do parâmetro do transformador Atualize os parâmetros para o transformador especificado. Atualmente suporta o Imputer (fill_value e mediano).
Remover colunas Especifica as colunas a deixar de serem apresentando.

Para personalizar as ações com o SDK, especifique "featurization": FeaturizationConfig no seu AutoMLConfig objeto. Saiba mais sobre as apresentações personalizadas.

Nota

A funcionalidade das colunas de queda é depreciada a partir da versão SDK 1.19. Largue as colunas do seu conjunto de dados como parte da limpeza de dados, antes de consumi-la na sua experiência automatizada de ML.

featurization_config = FeaturizationConfig()

# `logQuantity` is a leaky feature, so we remove it.
featurization_config.drop_columns = ['logQuantitity']

# Force the CPWVOL5 feature to be of numeric type.
featurization_config.add_column_purpose('CPWVOL5', 'Numeric')

# Fill missing values in the target column, Quantity, with zeroes.
featurization_config.add_transformer_params('Imputer', ['Quantity'], {"strategy": "constant", "fill_value": 0})

# Fill mising values in the `INCOME` column with median value.
featurization_config.add_transformer_params('Imputer', ['INCOME'], {"strategy": "median"})

Se estiver a usar o estúdio do Azure Machine Learning para a sua experiência, veja como personalizar a caracterização no estúdio.

Configurações opcionais

Estão disponíveis configurações opcionais adicionais para tarefas de previsão, tais como permitir a aprendizagem profunda e especificar uma agregação de janelas de rolamento de alvo. Uma lista completa de parâmetros adicionais está disponível na documentação de referência dos Parâmetros de Previsão SDK.

Agregação de dados-alvo de & frequência

Aproveite a frequência, freqparâmetro para ajudar a evitar falhas causadas por dados irregulares, ou seja, dados que não seguem uma cadência definida, como dados de hora ou de dia.

Para dados altamente irregulares ou para necessidades empresariais variadas, os utilizadores podem configurar opcionalmente a frequência de previsão desejada, freqe especificar a target_aggregation_function coluna-alvo da série-alvo. Aproveitar estas duas definições no seu AutoMLConfig objeto pode ajudar a economizar algum tempo na preparação de dados.

As operações de agregação suportadas para valores de coluna-alvo incluem:

Função Descrição
sum  Soma dos valores-alvo
mean  Média ou média dos valores-alvo
min Valor mínimo de um alvo
max Valor máximo de um alvo

Permitir a aprendizagem profunda

Nota

O suporte DNN para previsão em Machine Learning automatizado está em pré-visualização e não é suportado para corridas locais ou execuções iniciadas em Databricks.

Também pode aplicar aprendizagem profunda com redes neuronais profundas, DNNs, para melhorar as pontuações do seu modelo. A aprendizagem profunda automatizada da ML permite a previsão de dados univariados e multivariados de séries tempotárias.

Os modelos de aprendizagem profunda têm três capacidades intrínsecas:

  1. Eles podem aprender com mapeamentos arbitrários de entradas para saídas
  2. Suportam múltiplas entradas e saídas
  3. Podem extrair automaticamente padrões em dados de entrada que se estendem por longas sequências.

Para permitir uma aprendizagem profunda, coloque o enable_dnn=True objeto no AutoMLConfig objeto.

automl_config = AutoMLConfig(task='forecasting',
                             enable_dnn=True,
                             ...
                             forecasting_parameters=forecasting_parameters)

Aviso

Quando ativa o DNN para experiências criadas com o SDK, as melhores explicações para modelos são desativadas .

Para ativar a DNN para uma experiência AutoML criada no estúdio do Azure Machine Learning, consulte as definições do tipo de tarefa no estúdio UI how-to.

Agregação da janela de rolamento do alvo

Muitas vezes, a melhor informação que um meteorologista pode ter é o valor recente do alvo. As agregações de janelas de rolamento de alvo permitem adicionar uma agregação rolante dos valores de dados como características. Gerar e utilizar estas funcionalidades como dados contextuais extra ajuda na precisão do modelo do comboio.

Por exemplo, digamos que quer prever a procura de energia. É melhor adicionar uma característica de janela rolante de três dias para ter em conta as alterações térmicas dos espaços aquecidos. Neste exemplo, crie esta janela colocando target_rolling_window_size= 3 no AutoMLConfig construtor.

A tabela mostra a engenharia de características resultante que ocorre quando a agregação da janela é aplicada. As colunas para mínimo, máximo e soma são geradas numa janela deslizante de três com base nas definições definidas. Cada linha tem uma nova característica calculada, no caso do horário de 8 de setembro de 2017 4:00am os valores máximos, mínimos e somas são calculados usando os valores da procura para 8 de setembro de 2017 1:00AM - 3:00AM. Esta janela de três turnos ao longo para povoar dados para as restantes linhas.

janela de rolamento alvo

Veja um exemplo de código Python aplicando a função agregado de janela de rolamento do alvo.

Manipulação de séries curtas

ML automatizado considera uma série de tempo uma série curta se não houver pontos de dados suficientes para conduzir as fases de desenvolvimento do comboio e validação do modelo. O número de pontos de dados varia para cada experiência, e depende do max_horizon, do número de divisões de validação cruzada, e do comprimento do lookback do modelo, que é o máximo de história que é necessário para construir as características da série de tempo.

O ML automatizado oferece manuseamento de série curta por padrão com o short_series_handling_configuration parâmetro no ForecastingParameters objeto.

Para permitir o manuseamento de séries curtas, o freq parâmetro também deve ser definido. Para definir uma frequência de hora em hora, vamos definir freq='H'. Consulte as opções de cadeias de frequência visitando a secção de objetos dataOffset da série de tempo dos pandas. Para alterar o comportamento predefinido, short_series_handling_configuration = 'auto'atualize o short_series_handling_configuration parâmetro no seu ForecastingParameter objeto.

from azureml.automl.core.forecasting_parameters import ForecastingParameters

forecast_parameters = ForecastingParameters(time_column_name='day_datetime', 
                                            forecast_horizon=50,
                                            short_series_handling_configuration='auto',
                                            freq = 'H',
                                            target_lags='auto')

A tabela seguinte resume as definições disponíveis para short_series_handling_config.

Definições Descrição
auto O seguinte é o comportamento padrão para o manuseamento de séries curtas
  • Se todas as séries forem curtas, apadlé-os.
  • Se nem todas as séries forem curtas, largue as curtas-metragem.
  • pad Se short_series_handling_config = pad, em seguida, ML automatizado adicionar valores aleatórios a cada série curta encontrada. As seguintes listas listam os tipos de colunas e o que são acolchoados com:
  • Colunas de objetos com NaNs
  • Colunas numéricas com 0
  • Colunas booleanas/lógicas com Falso
  • A coluna-alvo é acolchoada com valores aleatórios com média de desvio zero e padrão de 1.
  • drop Se short_series_handling_config = drop, em seguida, ML automatizado deixar cair a série curta, e não será usado para treino ou previsão. As previsões para estas séries vão devolver a NaN's.
    None Nenhuma série é acolchoada ou largada

    Aviso

    O acolchoamento pode ter impacto na precisão do modelo resultante, uma vez que estamos a introduzir dados artificiais apenas para passar o treino sem falhas.

    Se muitas das séries são curtas, então também pode ver algum impacto nos resultados de explicabilidade

    Executar a experimentação

    Quando tiver o seu AutoMLConfig objeto pronto, pode submeter a experiência. Depois de terminar o modelo, recupere a melhor iteração de corrida.

    ws = Workspace.from_config()
    experiment = Experiment(ws, "Tutorial-automl-forecasting")
    local_run = experiment.submit(automl_config, show_output=True)
    best_run, fitted_model = local_run.get_output()
    

    Previsão com melhor modelo

    Use a melhor iteração de modelos para prever valores para dados que não foram usados para treinar o modelo.

    Avaliação da precisão do modelo com uma previsão de rolamento

    Antes de colocar um modelo em produção, deve avaliar a sua precisão num conjunto de testes retido a partir dos dados de treino. Um procedimento de boas práticas é uma chamada avaliação rolante que avança o meteorologista treinado no tempo ao longo do conjunto de testes, com uma média de métricas de erro em várias janelas de previsão para obter estimativas estatisticamente robustas para alguns conjuntos de métricas escolhidas. Idealmente, o conjunto de testes para a avaliação é longo em relação ao horizonte de previsão do modelo. As estimativas de erro de previsão podem, de outro modo, ser estatisticamente ruidosas e, portanto, menos fiáveis.

    Por exemplo, suponha que treine um modelo de vendas diárias para prever a procura até duas semanas (14 dias) no futuro. Se houver dados históricos suficientes disponíveis, poderá reservar os últimos meses até um ano dos dados do conjunto de testes. A avaliação de rolos começa por gerar uma previsão de 14 dias para as primeiras duas semanas do conjunto de testes. Em seguida, o meteorologista é avançado por alguns dias no conjunto de testes e você gera outra previsão de 14 dias a partir da nova posição. O processo continua até chegar ao fim do conjunto de testes.

    Para fazer uma avaliação em andamento, você chama o rolling_forecast método do fitted_model, em seguida, calcular as métricas desejadas sobre o resultado. Por exemplo, assuma que tem características de conjunto de teste num DataFrame de pandas chamado test_features_df e o teste definir valores reais do alvo numa matriz numpiada chamada test_target. Uma avaliação em rolo utilizando o erro quadrado médio é mostrada na seguinte amostra de código:

    from sklearn.metrics import mean_squared_error
    rolling_forecast_df = fitted_model.rolling_forecast(
        test_features_df, test_target, step=1)
    mse = mean_squared_error(
        rolling_forecast_df[fitted_model.actual_column_name], rolling_forecast_df[fitted_model.forecast_column_name])
    

    Na amostra acima, o tamanho do passo para a previsão de rolamento é definido para 1, o que significa que o meteorologista está avançado 1 período, ou 1 dia no nosso exemplo de previsão de procura, em cada iteração. O número total de previsões devolvidas depende, portanto rolling_forecast , da duração do conjunto de ensaios e desta dimensão do escalão. Para mais detalhes e exemplos consulte a documentação rolling_forecast() e a Previsão longe do caderno de dados de formação.

    Previsão para o futuro

    A função forecast_quantiles permite especificações de quando as previsões devem começar, ao contrário do predict() método, que é normalmente utilizado para tarefas de classificação e regressão. O método forecast_quantiles() por defeito gera uma previsão de ponto ou uma previsão média/mediana que não tem um cone de incerteza à sua volta. Saiba mais na Previsão longe do caderno de dados de formação.

    No exemplo seguinte, substitui-se primeiro todos os valores em y_pred .NaN A origem prevista está no final dos dados de formação neste caso. No entanto, se substituísse apenas a segunda metade com y_predNaN, a função deixaria os valores numéricos no primeiro semestre sem modificar, mas previu os NaN valores na segunda parte. A função devolve tanto os valores previstos como as características alinhadas.

    Também pode utilizar o forecast_destination parâmetro na função forecast_quantiles() para prever valores até uma data especificada.

    label_query = test_labels.copy().astype(np.float)
    label_query.fill(np.nan)
    label_fcst, data_trans = fitted_model.forecast_quantiles(
        test_dataset, label_query, forecast_destination=pd.Timestamp(2019, 1, 8))
    

    Muitas vezes, os clientes querem entender as previsões num quântico específico da distribuição. Por exemplo, quando a previsão é usada para controlar o inventário como artigos de mercearia ou máquinas virtuais para um serviço de nuvem. Nestes casos, o ponto de controlo é geralmente algo como "queremos que o item esteja em stock e não se esgotem 99% das vezes". O seguinte demonstra como especificar quais os quânticos que gostaria de ver para as suas previsões, tais como percentil 50 ou 95. Se não especificar um quântil, como no exemplo de código acima mencionado, então apenas as previsões percentil 50 são geradas.

    # specify which quantiles you would like 
    fitted_model.quantiles = [0.05,0.5, 0.9]
    fitted_model.forecast_quantiles(
        test_dataset, label_query, forecast_destination=pd.Timestamp(2019, 1, 8))
    

    Pode calcular métricas de modelo como, erro quadrado de raiz média (RMSE) ou erro percentual absoluto (MAPE) para ajudá-lo a estimar o desempenho dos modelos. Consulte a secção de avaliação do caderno de pedidos de partilha bike por exemplo.

    Depois de determinada a precisão global do modelo, o próximo passo mais realista é utilizar o modelo para prever valores futuros desconhecidos.

    Forneça um conjunto de dados no mesmo formato que o conjunto test_dataset de testes, mas com datas futuras, e o conjunto de previsão resultante é os valores previstos para cada etapa da série de tempo. Assumindo que os últimos registos da série de tempos no conjunto de dados foram para 12/31/2018. Para prever a procura para o dia seguinte (ou quantos períodos precisa prever, <= forecast_horizon), crie um recorde de séries de tempo única para cada loja para 01/01/2019.

    day_datetime,store,week_of_year
    01/01/2019,A,1
    01/01/2019,A,1
    

    Repita os passos necessários para carregar estes dados futuros num dataframe e, em seguida, corra best_run.forecast_quantiles(test_dataset) para prever valores futuros.

    Nota

    As previsões in-sample não são suportadas para a previsão com ML automatizado quando target_lags e/ou target_rolling_window_size estão ativadas.

    Previsão em escala

    Há cenários em que um único modelo de aprendizagem automática é insuficiente e são necessários vários modelos de aprendizagem automática. Por exemplo, prever vendas para cada loja individual para uma marca, ou adaptar uma experiência a utilizadores individuais. A construção de um modelo para cada instância pode levar a melhores resultados em muitos problemas de aprendizagem automática.

    O agrupamento é um conceito na previsão de séries de tempo que permite combinar séries temporárias para formar um modelo individual por grupo. Esta abordagem pode ser particularmente útil se tiver séries temporizadas que exijam suavização, preenchimento ou entidades do grupo que possam beneficiar da história ou tendências de outras entidades. Muitos modelos e previsão de séries de tempo hierárquicas são soluções alimentadas por machine learning automatizado para estes cenários de previsão em larga escala.

    Muitos modelos

    A Azure Machine Learning muitos modelos com machine learning automatizado permite aos utilizadores treinar e gerir milhões de modelos em paralelo. Muitos modelos O acelerador de soluções aproveita os oleodutos Azure Machine Learning para treinar o modelo. Especificamente, um objeto pipeline e ParalleRunStep são usados e requerem parâmetros de configuração específicos definidos através do ParallelRunConfig.

    O diagrama seguinte mostra o fluxo de trabalho para a solução de muitos modelos.

    Diagrama de conceito de muitos modelos

    O código que se segue demonstra os parâmetros-chave que os utilizadores precisam para configurar os seus muitos modelos executados. Veja o caderno ML automatizado de muitos modelos para um exemplo de previsão de muitos modelos

    from azureml.train.automl.runtime._many_models.many_models_parameters import ManyModelsTrainParameters
    
    partition_column_names = ['Store', 'Brand']
    automl_settings = {"task" : 'forecasting',
                       "primary_metric" : 'normalized_root_mean_squared_error',
                       "iteration_timeout_minutes" : 10, #This needs to be changed based on the dataset. Explore how long training is taking before setting this value 
                       "iterations" : 15,
                       "experiment_timeout_hours" : 1,
                       "label_column_name" : 'Quantity',
                       "n_cross_validations" : "auto", # Could be customized as an integer
                       "cv_step_size" : "auto", # Could be customized as an integer
                       "time_column_name": 'WeekStarting',
                       "max_horizon" : 6,
                       "track_child_runs": False,
                       "pipeline_fetch_max_batch_size": 15,}
    
    mm_paramters = ManyModelsTrainParameters(automl_settings=automl_settings, partition_column_names=partition_column_names)
    
    

    Previsão de séries de tempo hierárquicas

    Na maioria das aplicações, os clientes têm a necessidade de compreender as suas previsões a um nível macro e micro do negócio; quer se trate de prever vendas de produtos em diferentes localizações geográficas, ou de compreender a procura de mão-de-obra esperada para diferentes organizações numa empresa. A capacidade de formar um modelo de aprendizagem automática para prever inteligentemente os dados da hierarquia é essencial.

    Uma série de tempo hierárquica é uma estrutura na qual cada uma das séries únicas são dispostas numa hierarquia baseada em dimensões como, geografia ou tipo de produto. O exemplo a seguir mostra dados com atributos únicos que formam uma hierarquia. A nossa hierarquia define-se por: o tipo de produto como auscultadores ou tablets, a categoria de produto que divide os tipos de produtos em acessórios e dispositivos, e a região em que os produtos são vendidos.

    Quadro de dados brutos de exemplo para dados hierárquicos

    Para visualizar ainda mais isto, os níveis de folha da hierarquia contêm todas as séries temporítulas com combinações únicas de valores de atributos. Cada nível mais elevado na hierarquia considera uma dimensão a menos para definir as séries de tempo e agrega cada conjunto de nós infantis do nível inferior para um nó de pai.

    Hierarquia visual para dados

    A solução hierárquica da série de tempos é construída em cima da Solução de Muitos Modelos e partilha uma configuração de configuração semelhante.

    O código a seguir demonstra os parâmetros-chave para configurar as suas séries de tempo hierárquicas. Consulte a série de tempo hierárquica - Notebook ML automatizado, para um exemplo final.

    
    from azureml.train.automl.runtime._hts.hts_parameters import HTSTrainParameters
    
    model_explainability = True
    
    engineered_explanations = False # Define your hierarchy. Adjust the settings below based on your dataset.
    hierarchy = ["state", "store_id", "product_category", "SKU"]
    training_level = "SKU"# Set your forecast parameters. Adjust the settings below based on your dataset.
    time_column_name = "date"
    label_column_name = "quantity"
    forecast_horizon = 7
    
    
    automl_settings = {"task" : "forecasting",
                       "primary_metric" : "normalized_root_mean_squared_error",
                       "label_column_name": label_column_name,
                       "time_column_name": time_column_name,
                       "forecast_horizon": forecast_horizon,
                       "hierarchy_column_names": hierarchy,
                       "hierarchy_training_level": training_level,
                       "track_child_runs": False,
                       "pipeline_fetch_max_batch_size": 15,
                       "model_explainability": model_explainability,# The following settings are specific to this sample and should be adjusted according to your own needs.
                       "iteration_timeout_minutes" : 10,
                       "iterations" : 10,
                       "n_cross_validations" : "auto", # Could be customized as an integer
                       "cv_step_size" : "auto", # Could be customized as an integer
                       }
    
    hts_parameters = HTSTrainParameters(
        automl_settings=automl_settings,
        hierarchy_column_names=hierarchy,
        training_level=training_level,
        enable_engineered_explanations=engineered_explanations
    )
    

    Blocos de notas de exemplo

    Veja os blocos de notas de previsão de exemplo para obter exemplos de código detalhados de configuração de previsão avançada, incluindo:

    Passos seguintes