AutoML: Melhorar a previsão com covariáveis (regressores externos)
Este artigo mostra como usar covariáveis, também conhecidas como regressores externos, para melhorar os modelos de previsão do AutoML.
Covariáveis são variáveis adicionais fora da série temporal alvo que podem melhorar os modelos de previsão. Por exemplo, se você está prevendo taxas de ocupação hoteleira, saber se é o fim de semana pode ajudar a prever o comportamento do cliente.
Neste exemplo, você:
- Crie um conjunto de dados de séries cronológicas aleatórias.
- Execute trabalhos básicos de engenharia de recursos.
- Armazene o conjunto de dados como uma
FeatureStore
tabela. - Use as covariáveis as em um experimento
FeatureStore
de previsão do AutoML.
Criar os dados
Este exemplo usa dados de séries temporais gerados aleatoriamente para as taxas de ocupação hoteleira em janeiro de 2024. Em seguida, use o AutoML para prever o occupancy_rate
para o primeiro dia de fevereiro de 2024.
Execute o código a seguir para gerar os dados de exemplo.
df = spark.sql("""SELECT explode(sequence(to_date('2024-01-01'), to_date('2024-01-31'), interval 1 day)) as date, rand() as occupancy_rate FROM (SELECT 1 as id) tmp ORDER BY date""")
display(df)
Desenvolvimento de funcionalidades
Use o conjunto de dados de exemplo para projetar um recurso chamado is_weekend
classificador binário de se um date
é ou não um fim de semana.
from pyspark.sql.functions import dayofweek, when
def compute_hotel_weekend_features(df):
''' is_weekend feature computation code returns a DataFrame with 'date' as primary key'''
return df.select("date").withColumn(
"is_weekend",
when(dayofweek("date").isin( 1, 2, 3, 4, 5), 0) # Weekday
.when(dayofweek("date").isin(6, 7), 1) # Weekend
)
hotel_weekend_feature_df = compute_hotel_weekend_features(df)
Criar a loja de recursos
Para usar covariáveis no AutoML, você deve usar um Feature Store para unir uma ou mais tabelas de recursos de covariáveis com os dados de treinamento primários no AutoML.
Armazene o quadro hotel_weather_feature_df
de dados como um Repositório de Recursos.
from databricks.feature_engineering import FeatureEngineeringClient
fe = FeatureEngineeringClient()
hotel_weekend_feature_table = fe.create_table(
name='ml.default.hotel_weekend_features', # change to desired location
primary_keys=['date'],
df=hotel_weekend_feature_df,
description='Hotel is_weekend features table'
)
Nota
Este exemplo usa o Python FeatureEngineeringClient
para criar e escrever tabelas. No entanto, você também pode usar SQL ou DeltaLiveTables para escrever e criar tabelas. Consulte Trabalhar com tabelas de funcionalidades no Unity Catalog para obter mais opções.
Configurar o experimento AutoML
Use o feature_store_lookups
parâmetro para passar o Feature Store para o AutoML.
feature_store_lookups
contém um dicionário com dois campos: table_name
e lookup_key
.
hotel_weekend_feature_lookup = {
"table_name": "ml.default.hotel_weekend_features", # change to location set above
"lookup_key": ["date"]
}
feature_lookups = [hotel_weekend_feature_lookup]
Nota
feature_store_lookups
pode conter várias pesquisas de tabelas de recursos.
Executar o experimento AutoML
Use o código a seguir para passar o para uma chamada de API de experimento features_lookups
AutoML.
from databricks import automl
summary = automl.forecast(dataset=df, target_col="occupancy_rate", time_col="date", frequency="d", horizon=1, timeout_minutes=30, identity_col=None, feature_store_lookups=feature_lookups)