autolog#

pymc_marketing.mlflow.autolog(log_sampler_info=True, log_metadata_info=True, log_model_info=True, sample_error_file='sample-error.txt', summary_var_names=None, arviz_summary_kwargs=None, log_mmm=True, log_clv=True, disable=False, silent=False)[fuente]#

Soporte de autolog para modelos PyMC y modelos PyMC-Marketing.

Incluye el registro de diagnósticos del muestreador, información del modelo, datos utilizados en el modelo y objetos InferenceData al muestrear los modelos.

Para más información sobre MLflow, consulte https://mlflow.org/docs/latest/python_api/mlflow.html

Parámetros:
log_sampler_info : bool, opcionalbool, opcional

Si se deben registrar los diagnósticos del muestreador. El valor predeterminado es True.

log_metadata_info : bool, opcionalbool, opcional

Si se debe registrar los metadatos de las entradas utilizadas en el modelo. El valor predeterminado es True.

log_model_info : bool, opcionalbool, opcional

Si se debe registrar información del modelo. El valor predeterminado es True.

sample_error_file : str, opcionalpython:str, opcional

El nombre del archivo para registrar el error si ocurre un error durante el muestreo. Si es None, el error no será registrado. El valor predeterminado es «sample-error.txt».

summary_var_names : list[str], opcionalpython:list[python:str], opcional

Los nombres de las variables que se incluirán en el resumen de ArviZ. El valor predeterminado son todas las variables en el objeto InferenceData.

arviz_summary_kwargs : dict, opcionalpython:dict, opcional

Argumentos adicionales de palabras clave para pasar a az.summary.

log_mmm : bool, opcionalbool, opcional

Si se debe registrar los modelos MMM de PyMC-Marketing. El valor predeterminado es True.

log_clv : bool, opcionalbool, opcional

Si se deben registrar los modelos CLV de PyMC-Marketing. El valor predeterminado es True.

desactivar : bool, opcionalbool, opcional

Si deshabilitar el registro automático. El valor predeterminado es False.

silencioso : bool, opcionalbool, opcional

Si suprimir todas las advertencias. El valor predeterminado es False.

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)
    posterior_preds = mmm.sample_posterior_predictive(X)

    # 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()

with mlflow.start_run():
    model.fit(fit_method="map")