Посмотреть исходный код на GitHub |
Содержит предыдущие распределения для каждого параметра модели.
meridian.model.prior_distribution.PriorDistribution(
*,
knot_values: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Normal(0.0, \n 5.0, name=constants.KNOT_VALUES)),
tau_g_excl_baseline: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Normal(0.0, \n 5.0, name=constants.TAU_G_EXCL_BASELINE)),
beta_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.BETA_M)),
beta_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.BETA_RF)),
eta_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(1.0,\n name=constants.ETA_M)),
eta_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(1.0,\n name=constants.ETA_RF)),
gamma_c: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Normal(0.0, \n 5.0, name=constants.GAMMA_C)),
xi_c: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.XI_C)),
alpha_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Uniform(0.0, \n 1.0, name=constants.ALPHA_M)),
alpha_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Uniform(0.0, \n 1.0, name=constants.ALPHA_RF)),
ec_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.\n TruncatedNormal(0.8, 0.8, 0.1, 10, name=constants.EC_M)),
ec_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.\n TransformedDistribution(tfp.distributions.LogNormal(0.7, 0.4), tfp.\n bijectors.Shift(0.1), name=constants.EC_RF)),
slope_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.Deterministic(\n 1.0, name=constants.SLOPE_M)),
slope_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.7,\n 0.4, name=constants.SLOPE_RF)),
sigma: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.HalfNormal(5.0,\n name=constants.SIGMA)),
roi_m: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.2,\n 0.9, name=constants.ROI_M)),
roi_rf: tfp.distributions.Distribution = dataclasses.field(default_factory=lambda : tfp.distributions.LogNormal(0.2,\n 0.9, name=constants.ROI_RF))
)
PriorDistribution — это служебный класс для Meridian. Требуемые формы аргументов PriorDistribution зависят от параметров моделирования и форм данных, передаваемых в Meridian. Например, ec_m — это параметр, который представляет полунасыщение для каждого медиаканала. Аргумент ec_m должен иметь либо batch_shape=[] , либо batch_shape , равную количеству медиаканалов. В первом случае каждый медиаканал получает один и тот же априор.
При построении меридиана возникает ошибка, если какое-либо предшествующее распределение имеет форму, которую невозможно транслировать в форму, заданную спецификацией модели.
Формы пакетов параметров следующие:
| Параметр | Форма партии |
|---|---|
knot_values | n_knots |
tau_g_excl_baseline | n_geos - 1 |
beta_m | n_media_channels |
beta_rf | n_rf_channels |
eta_m | n_media_channels |
eta_rf | n_rf_channels |
gamma_c | n_controls |
xi_c | n_controls |
alpha_m | n_media_channels |
alpha_rf | n_rf_channels |
ec_m | n_media_channels |
ec_rf | n_rf_channels |
slope_m | n_media_channels |
slope_rf | n_rf_channels |
sigma | (о) |
roi_m | n_media_channels |
roi_rf | n_rf_channels |
(σ) n_geos , если unique_sigma_for_each_geo , в противном случае это 1
Атрибуты | |
|---|---|
knot_values | Априорное распределение по узлам для временных эффектов. Распределение по умолчанию — Normal(0.0, 5.0) . |
tau_g_excl_baseline | Априорное распределение по географическим эффектам, которое представляет собой средний KPI каждого географического региона относительно базового географического региона. Этот параметр передается в вектор длиной n_geos - 1 , сохраняя геопорядок и исключая baseline_geo . После выборки Meridian.inference_data включает модифицированную версию этого параметра под названием tau_g , которая имеет длину n_geos и содержит ноль в позиции, соответствующей baseline_geo . Meridian игнорирует это распределение, если n_geos = 1 . Распределение по умолчанию — Normal(0.0, 5.0) . |
beta_m | Предварительное распределение по параметру иерархического распределения медиаэффектов на географическом уровне для каналов мультимедиа показов ( beta_gm ). Когда media_effects_dist установлено значение 'normal' , это среднее иерархическое значение. Когда для media_effects_dist установлено значение 'log_normal' , это иерархический параметр для среднего значения базового Normal распределения с логарифмическим преобразованием. Meridian игнорирует это распределение, если use_roi_prior имеет True , и вместо этого использует roi_m Prior. Распространение по умолчанию — HalfNormal(5.0) . |
beta_rf | Априорное распределение по параметру иерархического распределения медиаэффектов на географическом уровне для охвата и частоты медиаканалов ( beta_grf ). Когда media_effects_dist установлено значение 'normal' , это среднее иерархическое значение. Когда для media_effects_dist установлено значение 'log_normal' , это иерархический параметр для среднего значения базового Normal распределения с логарифмическим преобразованием. Meridian игнорирует это распределение, если use_roi_prior имеет True , и вместо этого использует априорное значение roi_m . Распространение по умолчанию — HalfNormal(5.0) . |
eta_m | Предварительное распределение по параметру иерархического распределения медиаэффектов на географическом уровне для каналов мультимедиа показов ( beta_gm ). Если для media_effects_dist установлено значение 'normal' , это иерархическое стандартное отклонение. Когда для media_effects_dist установлено значение 'log_normal' это иерархический параметр для стандартного отклонения основного Normal распределения с логарифмическим преобразованием. Распределение по умолчанию — HalfNormal(1.0) . |
eta_rf | Априорное распределение по параметру иерархического распределения медиаэффектов на географическом уровне для медиаканалов РФ ( beta_grf ). Если для media_effects_dist установлено значение 'normal' , это иерархическое стандартное отклонение. Если для media_effects_dist установлено значение 'log_normal' это иерархический параметр для стандартного отклонения базового Normal распределения с логарифмическим преобразованием. Распределение по умолчанию — HalfNormal(1.0) . |
gamma_c | Априорное распределение по иерархическому среднему значению gamma_gc , которое является коэффициентом контроля c для geo g . Иерархия определяется по географическому признаку. Распределение по умолчанию — Normal(0.0, 5.0) . |
xi_c | Априорное распределение иерархического стандартного отклонения gamma_gc , которое является коэффициентом контроля c для geo g . Иерархия определяется по географическому признаку. Распространение по умолчанию — HalfNormal(5.0) . |
alpha_m | Априорное распределение по geometric decay параметра Adstock для входных медиа. Распределение по умолчанию — Uniform(0.0, 1.0) . |
alpha_rf | Априорное распределение по параметру Адстока geometric decay для радиочастотного входа. Распределение по умолчанию — Uniform(0.0, 1.0) . |
ec_m | Априорное распределение по параметру Хилла half-saturation для входного медиа. Распределение по умолчанию — TruncatedNormal(0.8, 0.8, 0.1, 10) . |
ec_rf | Априорное распределение по параметру Хилла half-saturation для ВЧ-входа. Распределение по умолчанию — TransformedDistribution(LogNormal(0.7, 0.4), Shift(0.1)) . |
slope_m | Априорное распределение по параметру slope Хилла для входных медиа. Распределение по умолчанию — Deterministic(1.0) . |
slope_rf | Априорное распределение по slope параметра Хилла для ВЧ-входа. Распределение по умолчанию — LogNormal(0.7, 0.4) . |
sigma | Априорное распределение по стандартному отклонению шума. Распространение по умолчанию — HalfNormal(5.0) . |
roi_m | Предварительное распределение по иерархической рентабельности инвестиций в средства массовой информации. Meridian игнорирует это распределение, если use_roi_prior имеет значение False , и вместо этого использует beta_m . Если use_roi_prior имеет значение True , beta_m рассчитывается как детерминированная функция roi_m , alpha_m , ec_m , slope_m и расходов, связанных с каждым медиа-каналом (например, модель перепараметризуется с помощью roi_m вместо beta_m ). Распределение по умолчанию — LogNormal(0.2, 0.9) . |
roi_rf | Априорное распределение по иерархической рентабельности инвестиций в RF-входе. Meridian игнорирует это распределение, если use_roi_prior имеет значение False , и вместо этого использует beta_rf . Когда use_roi_prior имеет значение True , beta_rf рассчитывается как детерминированная функция roi_rf , alpha_rf , ec_rf , slope_rf и расходов, связанных с каждым медиа-каналом (например, модель перепараметризуется с помощью roi_rf вместо beta_rf ). Распределение по умолчанию — LogNormal(0.2, 0.9) . |
Методы
broadcast
broadcast(
n_geos: int,
n_media_channels: int,
n_rf_channels: int,
n_controls: int,
sigma_shape: int,
n_knots: int,
is_national: bool
) -> PriorDistribution
Возвращает новый PriorDistribution с атрибутами широковещательного распространения.
| Аргументы | |
|---|---|
n_geos | Количество гео. |
n_media_channels | Количество используемых медиаканалов. |
n_rf_channels | Количество используемых каналов охвата и частоты. |
n_controls | Количество используемых элементов управления. |
sigma_shape | Число, описывающее форму параметра сигма. Это либо 1 (если sigma_for_each_geo=False ), либо n_geos (если sigma_for_each_geo=True ). Для получения дополнительной информации см. ModelSpec . |
n_knots | Количество используемых узлов. |
is_national | Логический индикатор того, будет ли предварительное распределение адаптировано для национальной модели. |
| Возврат | |
|---|---|
Новая трансляция PriorDistribution из этого предыдущего распределения в соответствии с заданной размерностью данных. |
| Поднимает | |
|---|---|
ValueError | Если пользовательские априоры не установлены для всех каналов. |
has_deterministic_param
has_deterministic_param(
param: tfp.distributions.Distribution
) -> bool
__eq__
__eq__(
other
)
Вернуть значение self==.
Посмотреть исходный код на GitHub