Nesta página, explicamos o que é previsão hierárquica, quais são seus objetivos e mostramos algumas estratégias de treinamento que podem ser empregadas para reduzir o viés nos seus modelos de previsão.
Para instruções detalhadas sobre como configurar a previsão hierárquica ao treinar seu modelo de previsão usando a API, consulte Treinar um modelo de previsão.
O que é previsão hierárquica
Geralmente, as séries temporais são estruturadas em uma hierarquia aninhada. Por exemplo, é possível dividir todo o inventário de produtos que um varejista vende em categorias de produtos. As categorias podem ser divididas em produtos individuais. As previsões dos produtos de uma categoria devem somar a previsão da própria categoria e, assim, a hierarquia.
Da mesma forma, a dimensão de tempo de uma única série temporal também pode exibir uma hierarquia. Por exemplo, as vendas previstas para um produto individual no nível do dia devem resultar em um total de vendas semanais previstas. A figura a seguir mostra esse grupo e a hierarquia temporal como uma matriz:
A previsão hierárquica tem três objetivos:
- Reduza a tendência geral para melhorar as métricas em todas as séries temporais (vendas totais).
- Reduza a tendência temporal para melhorar as métricas no horizonte (promoções sazonais).
- Reduza o viés no nível do grupo para melhorar as métricas em um grupo de séries temporais (vendas de itens).
Na Vertex AI, a previsão hierárquica considera a estrutura hierárquica da série temporal incorporando termos de perda adicionais para previsões agregadas.
Hierarchical loss = (1 x loss) +
(temporal total weight x temporal total loss) +
(group total weight x group total loss) +
(group temporal total weight x group temporal total loss)
Por exemplo, se o grupo hierárquico for "category", as previsões no nível "category" serão a soma das previsões de todos os "products" na categoria. Se o objetivo do modelo for um erro absoluto (MAE), a perda incluirá o MAE para previsões nos níveis de "product" e "category". Isso ajuda a melhorar a consistência das previsões em níveis diferentes da hierarquia e, em alguns casos, até melhorar as métricas no nível mais baixo.
Configurar a agregação hierárquica para o treinamento de modelos
É possível configurar a agregação hierárquica ao treinar os modelos de previsão
configurando
AutoMLForecastingTrainingJob
no
SDK da Vertex AI
ou
configurando hierarchyConfig
na API Vertex AI.
Os parâmetros disponíveis para AutoMLForecastingTrainingJob
e hierarchyConfig
incluem:
group_columns
group_total_weight
temporal_total_weight
group_temporal_total_weight
Os parâmetros permitem diferentes combinações de perdas agregadas de grupo
e tempo. Elas também permitem que você atribua pesos para aumentar a prioridade de minimizar a perda agregada em relação à perda individual. Por exemplo, se
o peso for definido como 2.0
, ele será ponderado duas vezes mais que a perda
individual.
group_columns
Nomes de coluna na tabela de entrada de treinamento que identificam o agrupamento para o nível de hierarquia. As colunas precisam ser time_series_attribute_columns
. Se a coluna de grupo não for definida, todas as séries temporais serão tratadas como parte do mesmo grupo e serão agregadas em todas as séries temporais.
group_total_weight
Peso da perda agregada do grupo em relação à perda individual. Desativado se estiver definido como 0.0
ou não estiver definido.
temporal_total_weight
Peso da perda agregada do tempo em relação à perda individual. Desativado se estiver definido como 0.0
ou não estiver definido.
group_temporal_total_weight
Ponderação do total de perda agregada (grupo x tempo) em relação à perda individual. Desativado se estiver definido como 0.0
ou não estiver definido. Se a coluna de grupo não for definida, todas as séries temporais serão tratadas como parte do mesmo grupo e serão agregadas em todas as séries temporais.
Estratégias para reduzir o viés
Comece com um tipo de agregação (grupo ou tempo) com uma ponderação de 10.0
e, em seguida, reduza pela metade ou o dobro do valor com base nos resultados.
Reduzir o viés geral
Em previsões detalhadas para a distribuição de estoque em lojas em que um erro ponderado absoluto (WAPE, na sigla em inglês) no nível do produto x da loja x data é usado como uma métrica de previsão, as previsões geralmente são subestimadas nos níveis agregados. Para compensar essa tendência geral, tente o seguinte:
- Defina
group_total_weight
como10.0
. - Não defina a
group_columns
. - Não defina as outras ponderações.
Isso agrega todas as séries temporais e reduz o viés geral.
Reduzir o viés temporal
No planejamento de longo prazo, as previsões podem ser feitas no nível do produto x região x semana, mas as métricas relevantes podem ser medidas em relação aos totais sazonais. Para compensar esse viés temporal, tente o seguinte:
- Defina
temporal_total_weight
como10.0
. - Não defina a
group_columns
. - Não defina as outras ponderações.
Isso se agrega a todas as datas no horizonte de uma série temporal e reduz o viés temporal.
Reduzir o viés de grupo
Para previsões com várias finalidades no processo de reabastecimento, previsões detalhadas no nível de produto x loja x data ou semana podem ser agregadas até produto x centro de distribuição x níveis de data para distribuição ou categoria do produto x níveis de data para os pedidos de materiais. Para isso, faça o seguinte:
- Defina
group_total_weight
como10.0
. - Defina
group_columns
, por exemplo, ["region"] ou ["region", "category"]. Definir várias colunas usa o valor combinado para definir o grupo. Para melhores resultados, use colunas de grupo com 100 ou menos valores combinados distintos. - Não defina as outras ponderações.
Isso agrega todas as séries temporais no mesmo grupo para a mesma data e reduz o viés no nível do grupo.
Limites
- Somente um nível de agregação de séries temporais é compatível. Se mais de uma coluna de agrupamento for especificada, como "produto, loja", a série temporal estará no mesmo grupo somente se compartilharem os mesmos valores de "produto" e "loja". de dados.
- Recomendamos usar até cem grupos.