Início rápido¶
Um experimento AutoHybTS segue o fluxo do PyCaret: criar, ajustar, comparar, finalizar, prever. Cada método devolve um resultado imutável.
1. Criar o experimento e selar o teste¶
from autohybts import AutoHybridExperiment
from autohybts.datasets import get_data
y = get_data("synthetic_daily") # pd.Series com DatetimeIndex regular
exp = AutoHybridExperiment(fh=14, session_id=42).fit(y)
exp.splits # origens de V_search e V_select
fit valida a série, separa os últimos test_size pontos (padrão: fh) como
teste selado e congela as origens de validação. O teste selado só é lido por
evaluate_external. Os termos (origem, V_search, V_select, base, corretor …)
estão em Conceitos.
Por padrão a previsão é da variante A: fh passos de uma vez a partir de cada
origem. Para prever um passo por vez, recebendo cada valor real antes do próximo, use
variant="B" (Variantes A e B: como a previsão encontra o futuro).
2. Explorar os dados¶
exp.data_profile()
exp.plot_data("seasonality") # também: series, acf, distribution
3. Comparar modelos e híbridos¶
result = exp.compare_models()
result.leaderboard # cada candidata da busca (nome curto, ex.: arima-mlp)
result.decisions # cadeia incremental: desafiante, ganho, vitórias, motivo
result.best # o campeão
A busca roda em V_search; a escolha do campeão, em V_select. O que olhar:
leaderboard: uma linha por candidata avaliada, ordenada pela primeira métrica (MASE por padrão; menor é melhor), com cobertura e custo;decisions: uma linha por família que desafiou o campeão, comaccepted,median_gain(ganho mediano pareado),win_ratee o motivo de uma recusa.
Nota
Com os padrões (orçamento small e 7 origens por camada), compare_models pode
levar minutos: o notebook 01 inteiro, na série synthetic_daily, levou cerca de
1 min, e séries maiores, mais modelos ou um orçamento maior levam mais. Para um
primeiro contato,
AutoHybridExperiment(fh=14, budget="smoke", fold=3) termina em segundos, com a
ressalva de que a regra de aceite foi calibrada para 7 origens
(Seleção incremental).
Para incluir as outras estratégias de montar o sistema:
result = exp.compare_models(
include=("standalone", "residual", "multistage", "decomposition", "combination")
)
result.strategies
result.plot("pareto")
4. Inspecionar um modelo¶
hybrid = exp.create_hybrid("arima", "mlp")
hybrid.cv_results
exp.plot_model(hybrid, "cv_forecasts") # também: residuals, metric_by_horizon …
5. Finalizar, prever e avaliar uma vez¶
final = exp.finalize_model(result.best) # reajuste no histórico anterior ao teste
exp.predict_model(final).predictions
exp.evaluate_external(final).metrics # uma única avaliação por modelo
6. Salvar¶
from autohybts import load_model, save_model
path = save_model(final, "artifacts/champion")
model = load_model(path, trusted=True)
Previsão operacional¶
Sem teste selado (test_size=0), ou com o estimador de uma chamada:
from autohybts import AutoHybridForecaster
forecaster = AutoHybridForecaster(fh=14).fit(y)
forecaster.predict()
Próximos passos¶
Conceitos: o vocabulário e o caminho dos dados, da divisão à previsão.
Tutoriais 01. Início rápido — AutoHybTS a 04. Variante B: previsão rolling de um passo: o mesmo fluxo com figuras, a seleção de híbridos, a finalização e a variante B.
Diagnóstico da série: sazonalidade, estacionariedade e diferenças antes de escolher modelos.