Delen via


AutoML: Prognoses verbeteren met covariaten (externe regressors)

In dit artikel wordt beschreven hoe u covarianten, ook wel externe regressors genoemd, gebruikt om AutoML-voorspellingsmodellen te verbeteren.

Covariaties zijn extra variabelen buiten de doeltijdreeks die het voorspellen van modellen kunnen verbeteren. Als u bijvoorbeeld de bezettingspercentages van het hotel voorspelt, kunt u weten of het weekend het gedrag van klanten kan voorspellen.

In dit voorbeeld gaat u als volgt te werk:

  1. Maak een gerandomiseerde tijdreeksgegevensset.
  2. Basiswerk voor functie-engineering uitvoeren.
  3. Sla de gegevensset op als een "FeatureStoretable".
  4. Gebruik de FeatureStore functie als covariaten in een AutoML-prognoseexperiment.

De gegevens maken

In dit voorbeeld worden willekeurig gegenereerde tijdreeksgegevens gebruikt voor hotelbezettingspercentages in januari 2024. Gebruik vervolgens AutoML om de occupancy_rate eerste dag van februari 2024 te voorspellen.

Voer de volgende code uit om de voorbeeldgegevens te generate.

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)

Functie-engineering

Gebruik de voorbeeldgegevensset om een functie te maken die wordt aangeroepen is_weekend door een binaire classificatie van of een date weekend wel of niet is.

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)

Het functiearchief maken

Als u covariaten wilt gebruiken in AutoML, moet u een Feature Store gebruiken om een of meer covariante kenmerken tables met de primaire trainingsgegevens in AutoML te join.

Sla het gegevensframe hotel_weather_feature_df op als een functiearchief.

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

Notitie

In dit voorbeeld wordt de Python-FeatureEngineeringClient gebruikt om tableste maken en te schrijven. U kunt echter ook SQL of DeltaLiveTables gebruiken om tableste schrijven en te maken. Zie Werken met functie tables in Unity Catalog voor meer opties.

Het AutoML-experiment configureren

Gebruik de feature_store_lookups parameter om de functieopslag door te geven aan AutoML. feature_store_lookups bevat een woordenlijst met twee velden: table_name en 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]

Notitie

feature_store_lookups kan meerdere functies table zoekacties bevatten.

Het AutoML-experiment uitvoeren

Gebruik de volgende code om de features_lookups api-aanroep van een AutoML-experiment door te geven.

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)

Volgende stappen