![]() |
モデル上で予算最適化シナリオを実行して出力します。
meridian.analysis.optimizer.BudgetOptimizer(
meridian: meridian.model.model.Meridian
)
予算、データ、制約をカスタマイズできるさまざまなシナリオに基づいて、最大の結果が得られる最適な予算配分を見つけます。結果はプロットとして表示することも、HTML の概要出力ページとして表示することもできます。
メソッド
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
最大の結果が得られる最適な予算配分を見つけます。
通常、結果は収益ですが、KPI が収益以外で「KPI あたりの収益」データが利用できない場合は、KPI そのものが結果であると定義されます。
引数 | |
---|---|
use_posterior
|
ブール値。True の場合は、モデルの事後分布に基づいて予算が最適化されます。そうでない場合は、事前分布が使用されます。 |
selected_times
|
最適化を実施する期間の開始時間と終了時間のディメンション座標を含むタプル。指定された時間の値は、基となるモデルの Meridian 時間ディメンション座標に即している必要があります。デフォルトでは、すべての期間が使用されます。開始時間か終了時間のコンポーネントを None にすると、それぞれ最初か最後の時間座標を表すことができます。 |
fixed_budget
|
固定予算の最適化なのか、柔軟な予算の最適化なのかを示すブール値。デフォルトは True です。False の場合は、target_roi か target_mroi のいずれかを指定する必要があります。 |
budget
|
固定予算のシナリオの合計予算を示す数値。デフォルトは過去の予算です。 |
pct_of_spend
|
すべてのメディア チャネルと RF チャネルへの費用の配分率を含む、n_total_channels サイズの数値リスト。順序が InputData.media と一致し、値は 0~1 の範囲で、合計が 1 になる必要があります。デフォルトでは、過去の配分が使用されます。予算と配分は、最適化されていないメディアレベルの費用を決めるために併用されます。決定された費用は、最適化されていないパフォーマンス指標(ROI など)の計算と、費用の制約を踏まえた実現可能なメディアレベルの費用範囲の割り出しに使われます。 |
spend_constraint_lower
|
メディアレベルの費用の下限を示す、n_total_channels サイズの数値リストか浮動小数点数(すべてのチャネルで同じ制約)メディアレベルの費用の下限は (1 -
spend_constraint_lower) * budget * allocation) です。値は 0~1 の範囲である必要があります。デフォルトは、固定予算の場合が 0.3 、柔軟な予算の場合が 1 です。 |
spend_constraint_upper
|
メディアレベルの費用の上限を示す、n_total_channels サイズの数値リストか浮動小数点数(すべてのチャネルで同じ制約)。メディアレベルの費用の上限は (1 +
spend_constraint_upper) * budget * allocation) です。デフォルトは、固定予算の場合が 0.3 、柔軟な予算の場合が 1 です。 |
target_roi
|
目標 ROI の制約を示す浮動小数点数。柔軟な予算のシナリオだけで使われます。合計費用の ROI が target_roi に達した時点で、予算が制約されます。 |
target_mroi
|
目標限界 ROI の制約を示す浮動小数点数。柔軟な予算のシナリオだけで使われます。合計費用の限界 ROI が target_mroi に達した時点で、予算が制約されます。 |
gtol
|
グリッド設定で使われる予算に対して許容される相対誤差を示す浮動小数点数。予算は 10*n の単位で四捨五入されます(ここで n は、(budget - rounded_budget) が (budget * gtol) 以下になる最小の整数です)。gtol は 1 未満である必要があります。 |
use_optimal_frequency
|
True の場合は、最適化についてトレーニング済みの Meridian モデルで計算された optimal_frequency を使用します。False の場合は、過去のフリークエンシーを使用します。
|
use_kpi
|
True の場合、KPI で最適化を実行します。デフォルトは収益です。 |
confidence_level
|
信頼区間を計算するためのしきい値。 |
batch_size
|
各バッチのチェーンあたりの最大抽出数。メモリの枯渇を回避するため、計算はバッチで実行されます。メモリエラーが発生した場合は、batch_size を減らしてみてください。計算は通常、batch_size の値が大きいほど高速になります。 |
戻り値 | |
---|---|
最適化された予算配分データセットと、それらの導出に使われた中間値を含む OptimizationResults オブジェクト。 |