mlflow#
Utilidades de registro de MLflow para modelos de PyMC.
Este módulo proporciona utilidades para registrar varios aspectos de los modelos de PyMC en MLflow, que luego se extiende a los modelos de PyMC-Marketing.
El autologging es compatible con modelos de PyMC y modelos de PyMC-Marketing. Esto incluye el registro de diagnósticos del muestreador, información del modelo, datos utilizados en el modelo y objetos de InferenceData.
La autologging se puede habilitar llamando a la función autolog. Las siguientes funciones están parcheadas:
pymc.sample:log_versions(): Registra las versiones de PyMC-Marketing, PyMC y ArviZ en MLflow.log_model_derived_info(): Registrar tipos de parámetros, coordenadas, gráfico del modelo, etc.log_sample_diagnostics(): Registrar información derivada del objeto InferenceData.log_arviz_summary(): Tabla de registro de estadísticas resumidas sobre los parámetros estimadoslog_metadata(): Registra los metadatos de los datos utilizados en el modelo.log_error(): Registra el seguimiento y la excepción si ocurre un error durante el muestreo.
pymc.find_MAP:log_model_derived_info(): Registrar tipos de parámetros, coordenadas, gráfico del modelo, etc.
- MMM.fit
Todos los parámetros, métricas y artefactos de
pymc.samplelog_mmm_configuration(): Registra la configuración del modelo MMM.
CLVModel.fit:Información dependiente del método de ajuste utilizado (MCMC o MAP)
Tipo de modelo y método de ajuste
Ejemplos#
Autologging para un modelo de PyMC:
import mlflow
import pymc as pm
import pymc_marketing.mlflow
pymc_marketing.mlflow.autolog()
# Usual PyMC model code
with pm.Model() as model:
mu = pm.Normal("mu", mu=0, sigma=1)
obs = pm.Normal("obs", mu=mu, sigma=1, observed=[1, 2, 3])
# Incorporate into MLflow workflow
mlflow.set_experiment("PyMC Experiment")
with mlflow.start_run():
idata = pm.sample(model=model)
Autologging para un MMM de PyMC-Marketing:
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
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,
)
# Incorporate into MLflow workflow
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")
Autologging para un modelo CLV de PyMC-Marketing:
import pandas as pd
import mlflow
from pymc_marketing.clv import BetaGeoModel
from pymc_marketing.paths import data_dir
import pymc_marketing.mlflow
pymc_marketing.mlflow.autolog(log_clv=True)
mlflow.set_experiment("CLV Experiment")
file_path = data_dir / "clv_quickstart.csv"
data = pd.read_csv(file_path)
data["customer_id"] = data.index
model = BetaGeoModel(data=data)
with mlflow.start_run():
model.fit()
Funciones
|
Soporte de autolog para modelos PyMC y modelos PyMC-Marketing. |
|
Cree una función de callback para registrar estadísticas de muestra y valores de parámetros en MLflow durante el muestreo. |
|
Cargar un modelo MMM de PyMC-Marketing desde MLflow. |
|
Registra el resumen de ArviZ como un artefacto en MLflow. |
|
Registrar error arbitrario capturado y seguimiento a MLflow. |
|
Registre el InferenceData en MLflow. |
|
Guarde el tipo de probabilidad del modelo en MLflow. |
|
Registre los metadatos de los datos utilizados en el modelo en MLflow. |
|
Registrar un MMM de PyMC-Marketing como un modelo nativo de MLflow para la ejecución actual. |
Registre la configuración del modelo MMM en MLflow. |
|
|
Registrar métricas de evaluación producidas por |
|
Registrar varios datos derivados del modelo en MLflow. |
|
Registra el gráfico del modelo en PDF como artefacto en MLflow. |
|
Registrar muestras de diagnóstico en MLflow. |
|
Registra los tipos de parámetros en un modelo PyMC en MLflow. |
Registre las versiones de PyMC-Marketing, PyMC y ArviZ en MLflow. |
Clases
|
Una clase para preparar un Modelo de Mezcla de Marketing (MMM) de PyMC para registrar y registrar en MLflow. |