مشاهده منبع در 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 است. اگر n_geos = 1 مریدین این توزیع را نادیده می گیرد. توزیع پیش فرض Normal(0.0, 5.0) . |
beta_m | توزیع قبلی روی پارامتری برای توزیع سلسله مراتبی جلوههای رسانه در سطح جغرافیایی برای کانالهای رسانه نمایش ( beta_gm ). وقتی media_effects_dist روی 'normal' تنظیم می شود، میانگین سلسله مراتبی است. وقتی media_effects_dist روی 'log_normal' تنظیم میشود، این پارامتر سلسله مراتبی برای میانگین توزیع Normal و زیربنایی است. اگر use_roi_prior True باشد Meridian این توزیع را نادیده می گیرد و به جای آن از roi_m prior استفاده می کند. توزیع پیشفرض HalfNormal(5.0) است. |
beta_rf | توزیع قبلی بر روی پارامتری برای توزیع سلسله مراتبی اثرات رسانهای در سطح جغرافیایی برای کانالهای رسانه دسترسی و فرکانس ( beta_grf ). وقتی media_effects_dist روی 'normal' تنظیم می شود، میانگین سلسله مراتبی است. وقتی media_effects_dist روی 'log_normal' تنظیم میشود، این پارامتر سلسله مراتبی برای میانگین توزیع Normal و زیربنایی است. اگر use_roi_prior True باشد Meridian این توزیع را نادیده می گیرد و به جای آن از roi_m prior استفاده می کند. توزیع پیشفرض HalfNormal(5.0) است. |
eta_m | توزیع قبلی روی پارامتری برای توزیع سلسله مراتبی جلوههای رسانه در سطح جغرافیایی برای کانالهای رسانه نمایش ( beta_gm ). وقتی media_effects_dist روی 'normal' تنظیم می شود، انحراف استاندارد سلسله مراتبی است. وقتی media_effects_dist روی 'log_normal' تنظیم میشود، این پارامتر سلسله مراتبی برای انحراف استاندارد توزیع Normal زیربنایی، تبدیل شده به log است. توزیع پیشفرض HalfNormal(1.0) است. |
eta_rf | توزیع قبلی بر روی یک پارامتر برای توزیع سلسله مراتبی اثرات رسانه در سطح جغرافیایی برای کانال های رسانه RF ( beta_grf ). وقتی media_effects_dist روی 'normal' تنظیم می شود، انحراف استاندارد سلسله مراتبی است. وقتی media_effects_dist روی 'log_normal' تنظیم میشود، این پارامتر سلسله مراتبی برای انحراف استاندارد توزیع Normal زیربنایی، تبدیل شده به log است. توزیع پیشفرض HalfNormal(1.0) است. |
gamma_c | توزیع قبلی بر روی میانگین سلسله مراتبی gamma_gc که ضریب کنترل c برای geo g است. سلسله مراتب بر روی geos تعریف می شود. توزیع پیش فرض Normal(0.0, 5.0) . |
xi_c | توزیع قبلی بر روی انحراف استاندارد سلسله مراتبی gamma_gc که ضریب کنترل c برای geo g است. سلسله مراتب بر روی geos تعریف می شود. توزیع پیشفرض HalfNormal(5.0) است. |
alpha_m | توزیع قبلی بر روی پارامتر geometric decay Adstock برای ورودی رسانه. توزیع پیش فرض Uniform(0.0, 1.0) است. |
alpha_rf | توزیع قبلی بر روی پارامتر geometric decay Adstock برای ورودی RF. توزیع پیش فرض Uniform(0.0, 1.0) است. |
ec_m | توزیع قبلی بر روی پارامتر Hill half-saturation برای ورودی رسانه. توزیع پیشفرض TruncatedNormal(0.8, 0.8, 0.1, 10) است. |
ec_rf | توزیع قبلی روی پارامتر Hill half-saturation برای ورودی RF. توزیع پیشفرض TransformedDistribution(LogNormal(0.7, 0.4), Shift(0.1)) است. |
slope_m | توزیع قبلی روی پارامتر slope Hill برای ورودی رسانه. توزیع پیش فرض Deterministic(1.0) است. |
slope_rf | توزیع قبلی روی پارامتر slope Hill برای ورودی RF. توزیع پیشفرض LogNormal(0.7, 0.4) است. |
sigma | توزیع قبلی بر روی انحراف استاندارد نویز. توزیع پیشفرض HalfNormal(5.0) است. |
roi_m | توزیع قبلی در ROI سلسله مراتبی در ورودی رسانه. اگر use_roi_prior False باشد، Meridian این توزیع را نادیده می گیرد و به جای آن از beta_m استفاده می کند. وقتی use_roi_prior True باشد، beta_m به عنوان یک تابع قطعی از roi_m ، alpha_m ، ec_m ، slope_m ، و هزینههای مربوط به هر کانال رسانه محاسبه میشود (مثلاً، مدل به جای beta_m با roi_m مجددا پارامترسازی میشود). توزیع پیش فرض LogNormal(0.2, 0.9) است. |
roi_rf | توزیع قبلی در ROI سلسله مراتبی در ورودی RF. اگر use_roi_prior False باشد، Meridian این توزیع را نادیده می گیرد و به جای آن از 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
)
بازگشت به خود == ارزش.
مشاهده منبع در GitHub