agregar_costo_por_potenciales_objetivos#
- pymc_marketing.mmm.lift_test.add_cost_per_target_potentials(calibration_df, *, model=None, cpt_value, target_column='cost_per_target', name_prefix='cpt_calibration', get_indices=<function exact_row_indices>)[fuente]#
Agregue las penalizaciones
pm.Potentialpara calibrar el costo por objetivo.Para cada fila, calculamos la media de
cpt_variable_namea lo largo de la dimensión de fecha para el segmento especificado (dims, channel) y añadimos una penalización cuadrática suave:penalty = - |cpt_mean - target|^2 / (2 * sigma^2)
- Parámetros:
- calibration_df
pd.DataFrame Debe incluir las columnas
channel,sigmay una columna objetivo. Por defecto, se asume que la columna objetivo escost_per_target. El DataFrame también debe incluir una columna por cada dimensión del modelo encontrada en la variable CPT (excluyendodate).- modelo :
pm.Model, opcionalpm.Model, opcional Modelo que contiene el tensor de costo por objetivo. Si es None, utiliza el contexto del modelo actual.
- cpt_value
TensorVariable Tensor que representa los valores de costo por objetivo sobre las coordenadas del modelo.
- target_column
str Columna en
calibration_dfque contiene los objetivos de calibración.- name_prefix
str Prefijo para los nombres potenciales creados.
- get_indices
Callable[[pd.DataFrame,pm.Model],Indices] Función de alineación que mapea filas a índices de coordenadas del modelo.
- calibration_df
Ejemplos
cpt_tensor = pt.as_tensor_variable( np.full((len(dates), len(geo), len(channels)), 30.0, dtype=float) ) calibration_df = pd.DataFrame( { "channel": ["C1", "C2"], "geo": ["US", "US"], # add dims as needed "cost_per_target": [30.0, 45.0], "sigma": [2.0, 3.0], } ) add_cost_per_target_potentials( calibration_df=calibration_df, model=mmm.model, cpt_value=cpt_tensor, name_prefix="cpt_calibration", )