![]() |
Wykonuje scenariusze optymalizacji budżetu na podstawie Twojego modelu i wyprowadza ich wyniki.
meridian.analysis.optimizer.BudgetOptimizer(
meridian: meridian.model.model.Meridian
)
Znajduje optymalny przydział budżetu, który maksymalizuje wynik na podstawie różnych scenariuszy, w których można dostosować budżet, dane i ograniczenia. Wyniki można wyświetlić w postaci wykresów i strony z wynikiem podsumowania w formacie HTML.
Metody
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
Znajduje optymalne przydzielenie budżetu, które maksymalizuje wynik.
Wynik to zwykle przychody, ale gdy wskaźnik KPI nie jest przychodem, a dane „przychody na wskaźnik KPI” są niedostępne, Meridian definiuje wynik jako sam wskaźnik KPI.
Argumenty | |
---|---|
use_posterior
|
Wartość logiczna. Jeśli True , budżet jest optymalizowany na podstawie rozkładu warunkowego modelu. W przeciwnym razie używana jest poprzednia dystrybucja.
|
selected_times
|
Tupla zawierająca wymiary czasu rozpoczęcia i zakończenia w ramach okresu, w którym ma być przeprowadzana optymalizacja. Wybrane wartości czasu powinny być zgodne z współrzędnymi wymiaru czasu Meridian w modelu źródłowym. Domyślnie używane są wszystkie przedziały czasowe. Składnik czasu rozpoczęcia lub zakończenia może być None , co oznacza odpowiednio pierwszą lub ostatnią współrzędną czasu.
|
fixed_budget
|
Wartość logiczna wskazująca, czy jest to optymalizacja budżetu stałego, czy elastycznego. Domyślna wartość to True . Jeśli ustawiona jest wartość False , pole target_roi musi zawierać wartość target_roi lub target_mroi .
|
budget
|
Liczba wskazująca łączny budżet w przypadku scenariusza z budżetem stałym. Domyślnie jest to budżet historyczny. |
pct_of_spend
|
Lista liczb o rozmiarze n_total_channels zawierająca procentowy podział wydatków na wszystkie media i kanały RF. Kolejność musi być zgodna z InputData.media , a wartości muszą mieścić się w zakresie od 0 do 1. Ich suma musi wynosić 1. Domyślnie używana jest historyczna alokacja. Budżet i przydział są używane razem do określania wydatków na poziomie mediów, które nie są optymalizowane. Dane te są wykorzystywane do obliczania nieoptymalizowanych danych o skuteczności (np. zwrotu z inwestycji), a także do określania możliwego zakresu wydatków na poziomie mediów z uwzględnieniem ograniczeń wydatków.
|
spend_constraint_lower
|
Lista liczb o typie n_total_channels lub zmiennoprzecinkowym (ta sama wartość dla wszystkich kanałów) wskazująca dolną granicę wydatków na poziomie mediów. Dolna granica wydatków na poziomie mediów to (1 -
spend_constraint_lower) * budget * allocation) . Wartość musi znajdować się w przedziale od 0 do 1. Domyślna wartość to 0.3 w przypadku budżetu stałego i 1 w przypadku budżetu elastycznego.
|
spend_constraint_upper
|
Lista liczb o typie n_total_channels lub zmiennoprzecinkowym (takie same ograniczenia dla wszystkich kanałów), która wskazuje górną granicę wydatków na poziomie mediów. Górna granica wydatków na poziomie mediów to (1 +
spend_constraint_upper) * budget * allocation) . Domyślnie jest to 0.3 w przypadku budżetu stałego i 1 w przypadku budżetu elastycznego.
|
target_roi
|
Wartość zmiennoprzecinkowa określająca ograniczenie docelowego ROI. Jest używana tylko w przypadku scenariuszy z elastycznym budżetem. Budżet jest ograniczony do momentu, gdy zwrot z inwestycji z łącznych wydatków osiągnie poziom target_roi .
|
target_mroi
|
Wartość zmiennoprzecinkowa wskazująca docelową minimalną stopę zwrotu z inwestycji. Służy tylko do scenariuszy elastycznych budżetów. Budżet jest ograniczony do momentu, gdy marginalny ROI łącznych wydatków osiągnie wartość target_mroi .
|
gtol
|
Liczba zmiennoprzecinkowa wskazująca dopuszczalny błąd względny budżetu używanego w konfiguracji siatki. Budżet zostanie zaokrąglony do wartości 10*n , gdzie n jest najmniejszą liczbą całkowitą, która jest mniejsza lub równa (budget * gtol) .(budget - rounded_budget) Wartość gtol musi być mniejsza niż 1.
|
use_optimal_frequency
|
Jeśli True , do optymalizacji używa optimal_frequency obliczanego przez przeszkolony model Meridian. Jeśli False , używa historycznej częstotliwości.
|
confidence_level
|
Próg obliczania przedziałów ufności. |
batch_size
|
Maksymalna liczba losowań na łańcuch w każdej partii. Obliczenia są wykonywane partiami, aby uniknąć wyczerpania pamięci. Jeśli wystąpi błąd pamięci, spróbuj zmniejszyć batch_size . Obliczenia będą zazwyczaj szybsze przy większych wartościach batch_size .
|
Zwroty | |
---|---|
Obiekt OptimizationResults zawierający zbiory danych optymalnego przydziału budżetu wraz z niektórymi wartościami pośrednimi, na podstawie których zostały one utworzone.
|