parse_model_config#

pymc_marketing.model_config.parse_model_config(model_config, hsgp_kwargs_fields=None, non_distributions=None)[fuente]#

Analiza el diccionario de configuración del modelo.

Parámetros:
model_configdict

El diccionario de configuración del modelo.

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

Una lista de claves para analizar como argumentos de palabras clave HSGP.

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

Una lista de claves a ignorar al analizar el diccionario de configuración del modelo debido a que no son distribuciones.

Devoluciones:
dict

El diccionario de configuración del modelo analizado.

Ejemplos

Analiza todas las claves en la configuración del modelo, pero ignora la clave «tvp_intercept».

from pymc_marketing.hsgp_kwargs import HSGPKwargs
from pymc_marketing.model_config import parse_model_config
from pymc_extras.prior import Prior

model_config = {
    "alpha": {
        "dist": "Normal",
        "kwargs": {
            "mu": 0,
            "sigma": 1,
        },
    },
    "beta": Prior("HalfNormal"),
    "intercept_tvp_config": {
        "m": 200,
        "L": 119.17,
        "eta_lam": 1.0,
        "ls_mu": 5.0,
        "ls_sigma": 10.0,
        "cov_func": None,
    },
    "other_intercept": {
        "key": "Some other non-distribution configuration",
    },
}

parsed_model_config = parse_model_config(
    model_config,
    hsgp_kwargs_fields=["intercept_tvp_config"],
    non_distributions=["other_intercept"],
)
# {'alpha': Prior("Normal", mu=0, sigma=1),
#  'beta': Prior("HalfNormal"),
#  'intercept_tvp_config': HSGPKwargs(m=200, L=119.17, eta_lam=1.0, ls_mu=5.0, ls_sigma=10.0, cov_func=None),
#  'other_intercept': {'key': 'Some other non-distribution configuration'}}

Analizando con un error:

from pymc_marketing.model_config import (
    parse_model_config,
    ModelConfigError,
)

model_config = {
    "alpha": {"key": "Non distribution"},
    "beta": {"dist": "UnknownDistribution"},
    "gamma": "Completely wrong",
}

try:
    parse_model_config(model_config)
except ModelConfigError as e:
    print(e)