Pular para o conteúdo principal

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ê:

  1. Crie uma série temporal aleatória dataset.
  2. Realizar trabalhos básicos de engenharia de recursos.
  3. Armazene o site dataset como uma tabela FeatureStore.
  4. Use o site FeatureStore como covariável 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.

Python
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.

Python
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 recurso Store

Para usar covariáveis em AutoML, o senhor deve usar um recurso Store para join uma ou mais tabelas de recurso de covariáveis com os dados primários de treinamento em AutoML.

Armazene o quadro de dados hotel_weather_feature_df como um recurso Store.

Python
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 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 recurso Store para AutoML. feature_store_lookups contém um dicionário com dois campos: table_name e lookup_key.

Python
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 na tabela de recursos.

execução o experimento AutoML

Use o código a seguir para passar o endereço features_lookups para uma chamada de API de experimento do AutoML.

Python
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)

Próximas etapas