AutoML: Aprimorar a previsão com covariáveis (regressores externos)
Este artigo mostra aos senhores como usar covariáveis, também conhecidas como regressores externos, para aprimorar os modelos de previsão do AutoML.
As 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 de hotéis, saber se é fim de semana pode ajudar a prever o comportamento do cliente.
Neste exemplo, você:
Crie uma série temporal aleatória dataset.
Realizar trabalhos básicos de engenharia de recursos.
Armazene o site dataset como uma tabela
FeatureStore
.Use o
FeatureStore
como covariáveis em um experimento de previsão AutoML.
Crie os dados
Este exemplo usa dados de séries temporais gerados aleatoriamente para taxas de ocupação de hotéis 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 amostra.
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)
recurso engenharia
Use a amostra dataset para criar um recurso chamado is_weekend
que seja um classificador binário para determinar se 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 o repositório de recursos
Para usar covariáveis em AutoML, o senhor deve usar um repositório de recursos para join uma ou mais tabelas de recurso de covariável com os dados de treinamento primário em AutoML.
Armazenar o quadro de dados hotel_weather_feature_df
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'
)
Observação
Este exemplo usa o Python FeatureEngineeringClient
para criar e gravar tabelas. No entanto, o senhor também pode usar SQL ou DeltaLiveTables para escrever e criar tabelas. Consulte Trabalhar com tabelas de recurso em Unity Catalog para obter mais opções.
Configurar o experimento AutoML
Use o parâmetro feature_store_lookups
para passar o repositório de recursos para 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]
Observação
feature_store_lookups
pode conter várias pesquisas na tabela de recursos.
execução o experimento AutoML
Use o código a seguir para passar o features_lookups
para uma chamada de API de experimento do 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)