Condividi tramite


AutoML: migliorare la previsione con le covariate (regreditori esterni)

Questo articolo illustra come usare le covariate, note anche come regreditori esterni, per migliorare i modelli di previsione AutoML.

Le covariate sono variabili aggiuntive al di fuori della serie temporale di destinazione che possono migliorare i modelli di previsione. Ad esempio, se si prevedono i tassi di occupazione degli hotel, sapere se si tratta del fine settimana potrebbe aiutare a prevedere il comportamento dei clienti.

In questo esempio:

  1. Creare un set di dati di serie temporali casuale.
  2. Eseguire operazioni di progettazione delle funzionalità di base.
  3. Archiviare il set di dati come FeatureStore tabella.
  4. FeatureStore Usare come covariate in un esperimento di previsione AutoML.

Creare i dati

Questo esempio usa dati di serie temporali generati in modo casuale per le tariffe di occupazione degli hotel nel gennaio 2024. Usare quindi AutoML per stimare per occupancy_rate il primo giorno di febbraio 2024.

Eseguire il codice seguente per generare i dati di esempio.

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)

Progettazione delle caratteristiche

Usare il set di dati di esempio per progettare una funzionalità denominata is_weekend che un classificatore binario indica se un oggetto date è un fine settimana.

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)

Creare l'archivio funzionalità

Per usare le covariate in AutoML, è necessario usare un Archivio funzionalità per unire una o più tabelle delle funzionalità covariate con i dati di training primari in AutoML.

Archiviare il frame hotel_weather_feature_df di dati come archivio funzionalità.

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

Questo esempio usa Python FeatureEngineeringClient per creare e scrivere tabelle. Tuttavia, è anche possibile usare SQL o DeltaLiveTables per scrivere e creare tabelle. Per altre opzioni, vedere Usare le tabelle delle funzionalità in Unity Catalog.

Configurare l'esperimento AutoML

Usare il feature_store_lookups parametro per passare l'archivio funzionalità a AutoML. feature_store_lookups contiene un dizionario con due campi: 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 può contenere più ricerche di tabelle di funzionalità.

Eseguire l'esperimento AutoML

Usare il codice seguente per passare a una chiamata API dell'esperimento 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)

Passaggi successivi