Freigeben über


AutoML: Verbessern der Prognose mit Kovariaten (externe Regressoren)

In diesem Artikel erfahren Sie, wie Sie Kovariate, auch als externe Regressoren bezeichnet, verwenden, um AutoML-Prognosemodelle zu verbessern.

Kovariate sind zusätzliche Variablen außerhalb der Zielzeitreihe, die Prognosemodelle verbessern können. Wenn Sie z. B. die Hotelbelegungsraten prognostizieren, kann das Wissen, ob es sich um das Wochenende handelt, dazu beitragen, das Kundenverhalten vorherzusagen.

Gehen Sie bei diesem Beispiel so vor:

  1. Erstellen Sie ein randomisiertes Dataset für Zeitreihen.
  2. Führen Sie grundlegende Feature Engineering-Arbeit durch.
  3. Speichern Sie das Dataset als FeatureStore-Tabelle.
  4. Verwenden Sie FeatureStore als Kovariate in einem AutoML-Prognoseexperiment.

Erstellen der Daten

In diesem Beispiel werden zufällig generierte Zeitreihendaten für Hotelbelegungsraten im Januar 2024 verwendet. Verwenden Sie dann AutoML, um occupancy_rate für den ersten Tag vom Februar 2024 vorherzusagen.

Führen Sie den folgenden Code aus, um die Beispieldaten zu erzeugen.

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)

Feature Engineering

Verwenden Sie das Beispiel-Dataset, um ein Feature namens is_weekend zu entwickeln, das ein binärer Klassifizierer ist, ob date ein Wochenende ist oder nicht.

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)

Erstellen des Feature Stores

Um Kovariate für AutoML zu verwenden, müssen Sie einen Feature-Store verwenden, um eine oder mehrere kovariate Feature-Tabellen mit den primären Schulungsdaten in AutoML zu verknüpfen.

Speichern Sie den Datenrahmen hotel_weather_feature_df als Feature-Store.

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

Hinweis

In diesem Beispiel wird Python FeatureEngineeringClient zum Erstellen und Schreiben von Tabellen verwendet. Sie können jedoch auch SQL oder DeltaLiveTables verwenden, um Tabellen zu schreiben und zu erstellen. Weitere Optionen finden Sie unter Arbeiten mit Feature-Tabellen.

Konfigurieren des Experiments für automatisiertes ML

Verwenden Sie den feature_store_lookups-Parameter, um den Feature-Store an AutoML zu übergeben. feature_store_lookups enthält ein Wörterbuch mit zwei Feldern: table_name und 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]

Hinweis

feature_store_lookups kann mehrere Feature-Tabellenabruf enthalten.

Ausführen des AutoML-Experiments

Verwenden Sie den folgenden Code, um den features_lookups-API-Aufruf eines AutoML-Experiments weiterzugeben.

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)

Nächste Schritte