AutoML de mosaico: mejora de la previsión con covariantes (regresores externos)
En este artículo se muestra cómo usar covariantes, también conocidos como regresores externos, para mejorar los modelos de previsión de AutoML de mosaico.
Las covariables son variables adicionales fuera de la serie temporal de destino que pueden mejorar los modelos de pronóstico. Por ejemplo, si quiere pronosticar tasas de ocupación de hoteles, saber si es el fin de semana podría ayudar a predecir el comportamiento de los clientes.
En este ejemplo, puede:
- Cree un conjunto de datos de serie temporal aleatorio.
- Realice un trabajo básico de ingeniería de características.
- Almacene el conjunto de datos como una tabla
FeatureStore
. - Use
FeatureStore
como covariable en un experimento de pronóstico de AutoML.
Creación de los datos
En este ejemplo se usan datos de series temporales generadas aleatoriamente para las tasas de ocupación de un hotel en enero de 2024. Después, use AutoML para predecir el elemento occupancy_rate
para el primer día de febrero de 2024.
Ejecute el código siguiente para generar los datos de la muestra.
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)
Ingeniería de características
Use el conjunto de datos de ejemplo para diseñar una característica denominada is_weekend
, que es un clasificador binario para saber si date
es fin de semana o no.
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)
Creación del almacén de características
Para usar covariables en AutoML, debe usar un Almacén de características para unir una o varias tablas de características de covariable con los datos de entrenamiento principales en AutoML.
Almacene el marco de datos hotel_weather_feature_df
como Almacén de características.
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:
En este ejemplo se usa el elemento FeatureEngineeringClient
de Python para crear y escribir tablas. Pero también puede usar SQL o DeltaLiveTables para escribir y crear tablas. Vea Trabajo con tablas de características para obtener más opciones.
Configuración del experimento de AutoML
Use el parámetro feature_store_lookups
para pasar el Almacén de características a AutoML. feature_store_lookups
contiene un diccionario con dos campos: table_name
y 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
puede contener varias búsquedas de tablas de características.
Ejecución del experimento de AutoML
Use el código siguiente para pasar features_lookups
a una llamada API de experimento de 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)