![]() |
Esegue ed esporta scenari di ottimizzazione del budget nel modello.
meridian.analysis.optimizer.BudgetOptimizer(
meridian: meridian.model.model.Meridian
)
Trova l'allocazione del budget ottimale che massimizza il risultato in base a vari scenari in cui il budget, i dati e i vincoli possono essere personalizzati. I risultati possono essere visualizzati come grafici e come pagina di output di riepilogo HTML.
Metodi
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,
confidence_level: float = c.DEFAULT_CONFIDENCE_LEVEL,
batch_size: int = c.DEFAULT_BATCH_SIZE
) -> meridian.analysis.optimizer.OptimizationResults
Trova l'allocazione ottimale del budget che massimizza il risultato.
Il risultato è in genere costituito dalle entrate, ma quando il KPI non è costituito dalle entrate e i dati "entrate per KPI" non sono disponibili, Meridian definisce il risultato come il KPI stesso.
Args | |
---|---|
use_posterior
|
Booleano. Se True , il budget viene ottimizzato in base alla distribuzione a posteriori del modello. In caso contrario, viene utilizzata la distribuzione precedente.
|
selected_times
|
Tupla contenente le coordinate della dimensione della data e dell'ora di inizio e di fine per la durata su cui eseguire l'ottimizzazione. I valori di tempo selezionati devono essere in linea con le coordinate della dimensione del tempo di Meridian nel modello di base. Per impostazione predefinita, vengono utilizzati tutti i periodi di tempo. Il componente dell'ora di inizio o di fine può essere None per rappresentare rispettivamente la prima o l'ultima coordinata temporale.
|
fixed_budget
|
Valore booleano che indica se si tratta di un'ottimizzazione del budget fisso o flessibile. Il valore predefinito è True . Se False , deve essere specificato target_roi o target_mroi .
|
budget
|
Numero che indica il budget totale per lo scenario con budget fisso. Il valore predefinito è il budget storico. |
pct_of_spend
|
Elenco numerico di dimensioni n_total_channels contenente l'allocazione percentuale della spesa per tutti i canali media e RF. L'ordine deve corrispondere a InputData.media con valori compresi tra 0 e 1, la cui somma deve essere uguale a 1. Per impostazione predefinita, viene utilizzata l'allocazione storica. Il budget e l'allocazione vengono utilizzati insieme per determinare la spesa non ottimizzata a livello di media, che viene utilizzata per calcolare le metriche sul rendimento non ottimizzate (ad es. il ROI) e creare l'intervallo di spesa possibile a livello di media con i vincoli di spesa.
|
spend_constraint_lower
|
Elenco numerico di dimensioni n_total_channels o float
(stessa limitazione per tutti i canali) che indica il limite inferiore della spesa
a livello di media. Il limite inferiore della spesa a livello di media è (1 -
spend_constraint_lower) * budget * allocation) . Il valore deve essere compreso tra 0 e 1. Il valore predefinito è 0.3 per il budget fisso e 1 per quello flessibile.
|
spend_constraint_upper
|
Elenco numerico di dimensioni n_total_channels o float
(stesso vincolo per tutti i canali) che indica il limite superiore della spesa
a livello di media. Il limite superiore della spesa a livello di media è (1 +
spend_constraint_upper) * budget * allocation) . Il valore predefinito è 0.3 per il budget fisso e 1 per quello flessibile.
|
target_roi
|
Numero in virgola mobile che indica il vincolo ROI target. Utilizzato solo per scenari con budget flessibili. Il budget è limitato al momento in cui il ROI della spesa totale raggiunge target_roi .
|
target_mroi
|
Numero in virgola mobile che indica il vincolo del ROI marginale target. Utilizzato solo per scenari di budget flessibili. Il budget è limitato al momento in cui il ROI marginale della spesa totale raggiunge target_mroi .
|
gtol
|
Numero in virgola mobile che indica l'errore relativo accettabile per il budget utilizzato
nella configurazione della griglia. Il budget verrà arrotondato per 10*n , dove n è
il numero intero più piccolo tale che (budget - rounded_budget) sia inferiore
o uguale a (budget * gtol) . gtol deve essere inferiore a 1.
|
use_optimal_frequency
|
Se True , utilizza optimal_frequency calcolato dal
modello Meridian addestrato per l'ottimizzazione. Se False , utilizza la frequenza storica.
|
confidence_level
|
La soglia per il calcolo degli intervalli di confidenza. |
batch_size
|
Numero massimo di estrazioni per catena in ogni batch. Il calcolo viene eseguito in batch per evitare l'esaurimento della memoria. Se si verifica un errore di memoria, prova a ridurre batch_size . In genere, il calcolo sarà più rapido con valori batch_size più elevati.
|
Resi | |
---|---|
Un oggetto OptimizationResults contenente set di dati di allocazione del budget ottimizzati, insieme ad alcuni dei valori intermedi utilizzati per dedurli.
|