Sdílet prostřednictvím


AutoML: Vylepšení prognózování pomocí kovariant (externích regresorů)

V tomto článku se dozvíte, jak pomocí kovariant, označovaných také jako externí regresory, vylepšit modely prognózování AutoML.

Kovariance jsou další proměnné mimo cílovou časovou řadu, které můžou zlepšit modely prognózování. Pokud například předpovídáte obsazenost hotelů, vědět, zda je víkend, může pomoci predikovat chování zákazníků.

V tomto příkladu vy:

  1. Vytvořte náhodnou datovou sadu časových řad.
  2. Provádění základních technických prací na funkcích
  3. Uložte datovou sadu jako FeatureStore tabulku.
  4. Použijte FeatureStore jako kovariáty v experimentu prognózování AutoML.

Vytvoření dat

Tento příklad používá náhodně generovaná data časových řad pro ceny obsazenosti hotelů v lednu 2024. Pak pomocí AutoML predikujte occupancy_rate první den února 2024.

Spuštěním následujícího kódu vygenerujte ukázková data.

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)

Inženýrství funkcí

Použijte ukázkovou datovou sadu k vytvoření příznaku nazvaného is_weekend pro binární klasifikaci, zda je date víkend nebo ne.

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)

Vytvoření úložiště funkcí

Chcete-li použít kovarianty v AutoML, musíte použít úložiště funkcí pro spojení jedné nebo více tabulek kovariantů funkcí s primárními trénovacími daty v AutoML.

Uložte datový rámec hotel_weather_feature_df jako úložiště funkcí.

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

Poznámka:

V tomto příkladu se k vytváření a zápisu tabulek používá Python FeatureEngineeringClient . K zápisu a vytváření tabulek ale můžete také použít SQL nebo DeltaLiveTables. Další možnosti najdete v tématu Práce s tabulkami funkcí v katalogu Unity.

Konfigurace experimentu AutoML

Pomocí parametru feature_store_lookups předejte úložiště funkcí do AutoML. feature_store_lookups obsahuje slovník se dvěma poli: table_name a 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]

Poznámka:

feature_store_lookups může obsahovat několik dotazů na tabulky funkcí.

Spuštění experimentu AutoML

Pomocí následujícího kódu předejte rozhraní API pro volání experimentu AutoML features_lookups.

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)

Další kroky