Partilhar via


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

  1. Crie um conjunto de dados de séries cronológicas aleatórias.
  2. Execute trabalhos básicos de engenharia de recursos.
  3. Armazene o conjunto de dados como um FeatureStoretable.
  4. 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 seguinte código para generate 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 do Feature Store para um ou mais 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 utiliza o Python FeatureEngineeringClient para criar e escrever tables. No entanto, você também pode usar SQL ou DeltaLiveTables para escrever e criar tables. Veja trabalhar com a funcionalidade tables no Unity Catalog para 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 múltiplas pesquisas de funcionalidades de table.

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)

Próximos passos