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 ceny obsazenosti hotelů, vědí, jestli je víkend, může pomoct predikovat chování zákazníků.

V tomto příkladu:

  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. V experimentu FeatureStore s prognózováním AutoML použijte kovarianty.

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)

Příprava atributů

Ukázkovou datovou sadu použijte k vytvoření funkce označované is_weekend jako binární klasifikátor, ať už je víkend nebo ne date .

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 vyhledávání tabulek funkcí.

Spuštění experimentu AutoML

Pomocí následujícího kódu předejte volání rozhraní API experimentu 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)

Další kroky