Compartir a través de


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:

  1. Cree un conjunto de datos de serie temporal aleatorio.
  2. Realice un trabajo básico de ingeniería de características.
  3. Almacene el conjunto de datos como una tabla FeatureStore.
  4. 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)

Pasos siguientes