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:
- Vytvořte náhodnou datovou sadu časových řad.
- Provádění základních technických prací na funkcích
- Uložte datovou sadu jako
FeatureStore
tabulku. - 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)