meridian.analysis.optimizer.BudgetOptimizer

对模型运行预算优化方案并输出结果。

根据可以自定义预算、数据和限制条件的各种方案,找到可最大限度提升效果的最佳预算分配方案。结果可通过图表或 HTML 摘要输出页面的形式查看。

方法

optimize

查看源代码

找到可最大限度提升效果的最佳预算分配方案。

效果通常是收入,但如果 KPI 不是收入,并且“每个 KPI 的收入”数据不可用,则 Meridian 会将效果定义为 KPI 本身。

实参
use_posterior 布尔值。如果为 True,则系统会根据模型的后验分布优化预算。否则,系统会使用先验分布。
selected_times 一个元组,包含优化运行时段的开始和结束时间维度坐标。所选时间值应与基础模型中的 Meridian 时间维度坐标一致。默认情况下,系统会使用所有时间段。开始时间组件或结束时间组件可以是 None,分别表示第一个时间坐标或最后一个时间坐标。
fixed_budget 布尔值,用于指示是固定预算优化还是灵活预算优化。默认为 True。如果为 False,则必须指定 target_roitarget_mroi
budget 数字,用于指示固定预算方案的总预算。默认为历史预算。
pct_of_spend 大小为 n_total_channels 的数字列表,其中包含所有媒体和 RF 渠道的支出分配百分比。顺序必须与 InputData.media 一致,值介于 0 到 1 之间,总和为 1。默认情况下,系统会使用历史分配。预算和分配会结合使用,以确定未优化的媒体级支出,该支出用于计算未优化的效果指标(例如投资回报率),并在支出限制下构建可行的媒体级支出范围。
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 浮点数,用于指示目标投资回报率限制。仅用于灵活预算方案。当总支出的投资回报率达到 target_roi 时,预算会受到限制。
target_mroi 浮点数,用于指示目标边际投资回报率限制。仅用于灵活预算方案。当总支出的边际投资回报率达到 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 对象,其中包含优化后的预算分配数据集以及用于推导这些数据集的一些中间值。