log_mmm#

pymc_marketing.mlflow.log_mmm(mmm, artifact_path='model', registered_model_name=None, extend_idata=False, combined=True, include_last_observations=False, original_scale=True)[fuente]#

Registrar un MMM de PyMC-Marketing como un modelo nativo de MLflow para la ejecución actual.

Parámetros:
mmmMMM

El MMM debe ser registrado.

ruta_del_artifacto : str, opcionalpython:str, opcional

La ruta al artefacto que se registrará. Por defecto es «mmm_model».

conda_env : dict, opcionalpython:dict, opcional

Una representación en diccionario de un entorno Conda. Por defecto, se utiliza el entorno conda predeterminado.

registered_model_name : str, opcionalpython:str, opcional

El nombre del modelo registrado que se registrará. Por defecto es None. Si se especifica, el modelo se registrará bajo este nombre; de lo contrario, no se registrará.

extend_idata : bool, opcionalbool, opcional

Si se debe extender los datos de inferencia con predicciones. Utilizado para todos los métodos de predicción. Por defecto es False.

combinado : bool, opcionalbool, opcional

Si se debe combinar las dimensiones de cadena y de dibujo en la muestra. No funcionará si ya existe una dimensión llamada sample. Se utiliza para el muestreo predictivo posterior/anterior. Por defecto es True.

include_last_observations : bool, opcionalbool, opcional

Si incluir las últimas observaciones de los datos de entrenamiento para la transformación de adstock. Se asume que X son las siguientes predicciones que siguen a los datos de entrenamiento. Utilizado para todos los métodos de predicción. Por defecto es False.

original_scale : bool, opcionalbool, opcional

Si se deben devolver las predicciones en la escala original de la variable objetivo. Utilizado para todos los métodos de predicción. Por defecto es True.

Notas

Esta función registra el modelo como un modelo nativo de MLflow, lo cual es diferente del objeto completo del modelo, que incluye los InferenceData. Hacer esto permite que el modelo se almacene en el registro de MLFlow, ayudando con la versionado y el despliegue del modelo.

Ejemplos

MLFlow Registrando para un PyMC-Marketing MMM:

import pandas as pd

import mlflow

from pymc_marketing.mmm import (
    GeometricAdstock,
    LogisticSaturation,
    MMM,
)
from pymc_marketing.paths import data_dir
import pymc_marketing.mlflow
from pymc_marketing.mlflow import log_mmm

pymc_marketing.mlflow.autolog(log_mmm=True)

# Usual PyMC-Marketing model code

file_path = data_dir / "mmm_example.csv"
data = pd.read_csv(file_path, parse_dates=["date_week"])

X = data.drop("y", axis=1)
y = data["y"]

mmm = MMM(
    adstock=GeometricAdstock(l_max=8),
    saturation=LogisticSaturation(),
    date_column="date_week",
    channel_columns=["x1", "x2"],
    control_columns=[
        "event_1",
        "event_2",
        "t",
    ],
    yearly_seasonality=2,
)

mlflow.set_experiment("MMM Experiment")

with mlflow.start_run():
    idata = mmm.fit(X, y)

    # Additional specific logging
    fig = mmm.plot_components_contributions()
    mlflow.log_figure(fig, "components.png")

    model_info = log_mmm(
        mmm=mmm,
        registered_model_name="my_amazing_mmm",
        include_last_observations=True,
        original_scale=False,
    )