![]() |
Executa e gera cenários de otimização de orçamento no modelo.
meridian.analysis.optimizer.BudgetOptimizer(
meridian: meridian.model.model.Meridian
)
Encontra a alocação de orçamento ideal que maximiza o resultado com base em vários cenários em que o orçamento, os dados e as restrições podem ser personalizados. Os resultados podem ser mostrados como gráficos e como uma página HTML de saída de resumo.
Métodos
optimize
optimize(
use_posterior: bool = True,
selected_times: (tuple[str | None, str | None] | None) = None,
fixed_budget: bool = True,
budget: (float | None) = None,
pct_of_spend: (Sequence[float] | None) = None,
spend_constraint_lower: (_SpendConstraint | None) = None,
spend_constraint_upper: (_SpendConstraint | None) = None,
target_roi: (float | None) = None,
target_mroi: (float | None) = None,
gtol: float = 0.0001,
use_optimal_frequency: bool = True,
use_kpi: bool = False,
confidence_level: float = c.DEFAULT_CONFIDENCE_LEVEL,
batch_size: int = c.DEFAULT_BATCH_SIZE
) -> meridian.analysis.optimizer.OptimizationResults
Encontra a alocação de orçamento ideal que maximiza o resultado.
O resultado normalmente é a receita, mas, quando o KPI não é a receita e os dados de receita por KPI não estão disponíveis, o Meridian define o resultado como o próprio KPI.
Args | |
---|---|
use_posterior
|
Booleano. Se for True , o orçamento será otimizado com base na distribuição a posteriori do modelo. Caso contrário, a distribuição a priori será usada.
|
selected_times
|
Tupla que contém as coordenadas da dimensão do horário de início e de término para o período em que a otimização será executada. Os valores de tempo selecionados precisam estar alinhados às coordenadas da dimensão de tempo do Meridian no modelo subjacente. Por padrão, todos os períodos são usados. O componente de horário de início ou de término pode ser None para representar a primeira ou a última coordenada de tempo, respectivamente.
|
fixed_budget
|
Booleano que indica se é uma otimização de orçamento fixo ou flexível. O valor padrão é True . Se for False , é obrigatório especificar target_roi ou target_mroi .
|
budget
|
Número que indica o valor total do cenário de orçamento fixo. O padrão é o orçamento histórico. |
pct_of_spend
|
Lista numérica de tamanho n_total_channels que contém a alocação percentual do gasto para todos os canais de mídia e de RF. A ordem tem que corresponder a InputData.media com valores entre 0 e 1, com soma de 1. Por padrão, a alocação histórica é usada. O orçamento e a alocação são usados juntos para determinar o gasto não otimizado da mídia, que é a base para calcular as métricas de performance não otimizadas (por exemplo, ROI) e construir um intervalo viável de gastos da mídia com restrições.
|
spend_constraint_lower
|
Lista numérica de tamanho n_total_channels ou ponto flutuante (mesma restrição para todos os canais) que indica o limite inferior do gasto de mídia. Esse limite é (1 -
spend_constraint_lower) * budget * allocation) . O valor deve ser entre 0 e 1. O padrão é 0.3 para orçamento fixo e 1 para flexível.
|
spend_constraint_upper
|
Lista numérica de tamanho n_total_channels ou ponto flutuante (mesma restrição para todos os canais) que indica o limite superior do gasto de mídia. Esse limite é (1 +
spend_constraint_upper) * budget * allocation) . O padrão é 0.3 para orçamento fixo e 1 para flexível.
|
target_roi
|
Ponto flutuante que indica a restrição de ROI desejado. Usado apenas para cenários de orçamento flexível. A restrição é aplicada quando o ROI do gasto total atinge target_roi .
|
target_mroi
|
Ponto flutuante que indica a restrição de ROI marginal desejado. Usado apenas para cenários de orçamento flexível. A restrição é aplicada quando o ROI marginal do gasto total atinge target_mroi .
|
gtol
|
Ponto flutuante que indica o erro relativo aceitável para o orçamento usado na configuração da grade. O orçamento será arredondado por 10*n , em que n é o menor número inteiro para que (budget - rounded_budget) seja menor ou igual a (budget * gtol) . gtol precisa ser menor que 1.
|
use_optimal_frequency
|
Se for True , usa optimal_frequency calculado pelo modelo do Meridian treinado para otimização. Se for False , usa a frequência histórica.
|
use_kpi
|
Se True , executa a otimização no KPI. O padrão é a receita.
|
confidence_level
|
O limite para calcular os intervalos de confiança. |
batch_size
|
Número máximo de extrações por cadeia em cada lote. O cálculo é executado em lotes para evitar o esgotamento da memória. Se ocorrer um erro de memória, tente reduzir o batch_size . O cálculo costuma ser mais rápido com valores de batch_size maiores.
|
Retorna | |
---|---|
Um objeto OptimizationResults que contém conjuntos de dados de alocação de orçamento otimizada e alguns dos valores intermediários usados para extrair esses dados.
|