AutoML: migliorare la previsione con le covariate (regreditori esterni)
Questo articolo illustra come usare le covariate, note anche come regreditori esterni, per migliorare i modelli di previsione AutoML.
Le covariate sono variabili aggiuntive al di fuori della serie temporale di destinazione che possono migliorare i modelli di previsione. Ad esempio, se si prevedono i tassi di occupazione degli hotel, sapere se si tratta del fine settimana potrebbe aiutare a prevedere il comportamento dei clienti.
In questo esempio:
- Creare un set di dati di serie temporali casuale.
- Eseguire operazioni di progettazione delle funzionalità di base.
- Archiviare il set di dati come
FeatureStore
tabella. -
FeatureStore
Usare come covariate in un esperimento di previsione AutoML.
Creare i dati
Questo esempio usa dati di serie temporali generati in modo casuale per le tariffe di occupazione degli hotel nel gennaio 2024. Usare quindi AutoML per stimare per occupancy_rate
il primo giorno di febbraio 2024.
Eseguire il codice seguente per generare i dati di esempio.
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)
Progettazione delle caratteristiche
Usare il set di dati di esempio per progettare una funzionalità denominata is_weekend
che un classificatore binario indica se un oggetto date
è un fine settimana.
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)
Creare l'archivio funzionalità
Per usare le covariate in AutoML, è necessario usare un Archivio funzionalità per unire una o più tabelle delle funzionalità covariate con i dati di training primari in AutoML.
Archiviare il frame hotel_weather_feature_df
di dati come archivio funzionalità.
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'
)
Nota
Questo esempio usa Python FeatureEngineeringClient
per creare e scrivere tabelle. Tuttavia, è anche possibile usare SQL o DeltaLiveTables per scrivere e creare tabelle. Per altre opzioni, vedere Usare le tabelle delle funzionalità in Unity Catalog.
Configurare l'esperimento AutoML
Usare il feature_store_lookups
parametro per passare l'archivio funzionalità a AutoML.
feature_store_lookups
contiene un dizionario con due campi: table_name
e 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]
Nota
feature_store_lookups
può contenere più ricerche di tabelle di funzionalità.
Eseguire l'esperimento AutoML
Usare il codice seguente per passare a una chiamata API dell'esperimento 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)