شامل عملکرد اصلی برای نصب مدل مریدین MMM.
meridian.model.model.Meridian(
input_data: meridian.data.input_data.InputData,
model_spec: (meridian.model.spec.ModelSpec | None) = None
)
صفات |
|---|
input_data | یک شی InputData حاوی داده های ورودی مدل. |
model_spec | یک شی ModelSpec حاوی مشخصات مدل. |
inference_data | یک شی arviz.InferenceData قابل تغییر که حاوی داده های حاصل از برازش مدل است. |
n_geos | تعداد مکانهای جغرافیایی در دادهها |
n_media_channels | تعداد کانال های رسانه در داده ها. |
n_rf_channels | تعداد کانال های دسترسی و فرکانس (RF) در داده ها. |
all_channel_names | نام همه کانالهای رسانه (از جمله R&F، در صورت وجود) در دادهها، به ترتیب هماهنگ. |
n_controls | تعداد متغیرهای کنترلی در داده ها. |
n_times | تعداد دورههای زمانی در KPI یا دادههای هزینه. |
n_media_times | تعداد دوره های زمانی در داده های رسانه ای. |
is_national | یک بولی که نشان میدهد دادهها ملی هستند (تک جغرافیایی) یا نه (چند جغرافیایی). |
knot_info | KnotInfo برگرفته از داده های ورودی و مشخصات مدل. |
kpi | یک تانسور ساخته شده از input_data.kpi . |
revenue_per_kpi | تانسوری که از input_data.revenue_per_kpi ساخته شده است. اگر input_data.revenue_per_kpi None باشد، این نیز None است. |
controls | یک تانسور ساخته شده از input_data.controls . |
population | تانسوری که از input_data.population ساخته شده است. |
media_tensors | مجموعهای از تانسورهای رسانهای که از input_data مشتق شدهاند. |
rf_tensors | مجموعه ای از تانسورهای رسانه ای Reach & Frequency (RF). |
total_spend | تانسوری حاوی کل هزینه، از جمله media_tensors.media_spend و rf_tensors.rf_spend . |
controls_transformer | یک ControlsTransformer برای مقیاسبندی تانسورهای کنترل با استفاده از دادههای کنترل مدل. |
kpi_transformer | KpiTransformer برای مقیاسبندی تانسورهای KPI با استفاده از دادههای KPI مدل. |
controls_scaled | تانسور کنترل بر اساس جمعیت و مقدار میانه نرمال شده است. |
kpi_scaled | تانسور KPI با جمعیت و مقدار میانه نرمال شده است. |
media_effects_dist | رشته ای برای مشخص کردن توزیع جلوه های تصادفی رسانه در سراسر جغرافیا. |
unique_sigma_for_each_geo | یک بولی که نشان می دهد آیا باید از یک واریانس باقیمانده منحصر به فرد برای هر جغرافیایی استفاده کرد یا خیر. |
prior_broadcast | یک شی PriorDistribution حاوی توزیع های پخش شده. |
baseline_geo_idx | شاخص جغرافیای پایه. |
holdout_id | یک تانسور حاوی شناسه نگهدارنده، در صورت وجود. |
روش ها
مشاهده منبع
adstock_hill_media(
media: tf.Tensor,
alpha: tf.Tensor,
ec: tf.Tensor,
slope: tf.Tensor,
n_times_output: (int | None) = None
) -> tf.Tensor
رسانه ها را با استفاده از توابع Adstock و Hill به ترتیب دلخواه تغییر می دهد.
| ارگ |
|---|
media | تانسور ابعاد (n_geos, n_media_times, n_media_channels) حاوی مقادیر غیرمنفی اجرای رسانه. معمولاً این نمایشها است، اما میتواند هر معیاری باشد، مانند media_spend . کلیک ها اغلب برای تبلیغات جستجوی پولی استفاده می شوند. |
alpha | توزیع یکنواخت برای محاسبات Adstock و Hill. |
ec | توزیع نیمه نرمال برای محاسبات Adstock و Hill تغییر یافته است. |
slope | توزیع قطعی برای محاسبات Adstock و Hill. |
n_times_output | تعداد دوره های زمانی برای خروجی. این آرگومان زمانی اختیاری است که تعداد دورههای زمانی در media برابر self.n_media_times باشد، در این صورت n_times_output پیشفرض self.n_times است. |
| برمی گرداند |
|---|
تانسور با ابعاد [..., n_geos, n_times, n_media_channels] نشان دهنده رسانه Adstock و Hill-transformed است. |
adstock_hill_rf
مشاهده منبع
adstock_hill_rf(
reach: tf.Tensor,
frequency: tf.Tensor,
alpha: tf.Tensor,
ec: tf.Tensor,
slope: tf.Tensor,
n_times_output: (int | None) = None
) -> tf.Tensor
دسترسی و فرکانس (RF) را با استفاده از توابع Hill و Adstock تبدیل می کند.
| ارگ |
|---|
reach | تانسور ابعاد (n_geos, n_media_times, n_rf_channels) حاوی رسانه غیرمنفی برای دسترسی. |
frequency | تانسور ابعاد (n_geos, n_media_times, n_rf_channels) حاوی رسانه غیر منفی برای فرکانس. |
alpha | توزیع یکنواخت برای محاسبات Adstock و Hill. |
ec | توزیع نیمه نرمال برای محاسبات Adstock و Hill تغییر یافته است. |
slope | توزیع قطعی برای محاسبات Adstock و Hill. |
n_times_output | تعداد دوره های زمانی برای خروجی. این آرگومان زمانی اختیاری است که تعداد دورههای زمانی در reach برابر self.n_media_times باشد، در این صورت n_times_output پیشفرض self.n_times است. |
| برمی گرداند |
|---|
تانسور با ابعاد [..., n_geos, n_times, n_rf_channels] نشان دهنده RF تبدیل شده توسط Hill و Adstock است. |
expand_selected_time_dims
مشاهده منبع
expand_selected_time_dims(
start_date: (tc.Date | None) = None, end_date: (tc.Date | None) = None
) -> (list[str] | None)
ارزشهای بعد زمانی را بر اساس زمانهای انتخاب شده اعتبارسنجی و برمیگرداند.
اگر هر دو start_date و end_date None باشند، None را برمیگرداند.
| ارگ |
|---|
start_date | تاریخ شروع دوره زمانی انتخاب شده اگر هیچ، اولین مقدار بعد زمانی را در داده های ورودی نشان می دهد. |
end_date | تاریخ پایان دوره زمانی انتخاب شده اگر هیچ، آخرین مقدار بعد زمانی را در داده های ورودی نشان می دهد. |
| برمی گرداند |
|---|
فهرستی از مقادیر بعد زمانی (به عنوان رشتههای قالببندی مریدین) در دادههای ورودی در بازه زمانی انتخابشده، یا اگر هر دو آرگومان Nones هستند، کاری انجام نمیدهند و از None عبور میکنند، یا اگر start_date و end_date با کل محدوده زمانی در ورودی مطابقت دارند. داده ها |
| افزایش می دهد |
|---|
ValueError اگر start_date یا end_date در ابعاد زمان داده ورودی نباشد. |
populate_cached_properties
مشاهده منبع
populate_cached_properties()
مشتاقانه تمام ویژگی های کش را فعال می کند.
این برای ایجاد یک نمودار محاسباتی tf.function با این شی مریدین به عنوان بخشی از بسته شدن ضبط شده مفید است. در نمودار محاسباتی، جهشهای حالت داخلی مشکل دارند، بنابراین این روش، حالتهای جسم را قبل از ایجاد نمودار محاسباتی منجمد میکند.
sample_posterior
مشاهده منبع
sample_posterior(
n_chains: (Sequence[int] | int),
n_adapt: int,
n_burnin: int,
n_keep: int,
current_state: (Mapping[str, tf.Tensor] | None) = None,
init_step_size: (int | None) = None,
dual_averaging_kwargs: (Mapping[str, int] | None) = None,
max_tree_depth: int = 10,
max_energy_diff: float = 500.0,
unrolled_leapfrog_steps: int = 1,
parallel_iterations: int = 10,
seed: (Sequence[int] | None) = None,
**pins
)
نمونهبرداری زنجیرهای مارکوف مونت کارلو (MCMC) از توزیعهای پسین را اجرا میکند.
برای اطلاعات بیشتر درباره آرگومانها، به windowed_adaptive_nuts مراجعه کنید.
| ارگ |
|---|
n_chains | تعداد زنجیره های MCMC. با توجه به دنباله ای از اعداد صحیح، windowed_adaptive_nuts یک بار برای هر عنصر فراخوانی می شود. آرگومان n_chains هر فراخوانی windowed_adaptive_nuts برابر با عنصر صحیح مربوطه خواهد بود. با استفاده از فهرستی از اعداد صحیح، میتوان زنجیرههای یک فراخوانی windowed_adaptive_nuts را به چندین تماس با زنجیرههای کمتر در هر تماس تقسیم کرد. این می تواند استفاده از حافظه را کاهش دهد. این ممکن است به افزایش تعداد مراحل سازگاری برای همگرایی نیاز داشته باشد، زیرا بهینهسازی در زنجیرههای کمتری در هر تماس نمونهبرداری انجام میشود. |
n_adapt | تعداد قرعه کشی های سازگاری در هر زنجیره. |
n_burnin | تعداد قرعه کشی های سوخته در هر زنجیره. قرعهکشیهای Burn-in بعد از قرعهکشیهای اقتباسی و قبل از قرعهکشیهای نگهداشتهشده رخ میدهند. |
n_keep | تعداد صحیح قرعه کشی ها در هر زنجیره برای استنباط حفظ شود. |
current_state | ساختار اختیاری تانسورها که در آن نمونه برداری اولیه انجام می شود. از شکل و ساختار مشابه model.experimental_pin(**pins).sample(n_chains) استفاده کنید. |
init_step_size | عدد صحیح اختیاری تعیین محل مقداردهی اولیه گام برای یکپارچه ساز جهشی. ساختار باید با current_state پخش شود. به عنوان مثال، اگر حالت اولیه این باشد: { 'a': tf.zeros(n_chains), 'b': tf.zeros([n_chains, n_features]), } هر یک از 1. , {'a': 1., 'b': 1.} یا {'a': tf.ones(n_chains), 'b': tf.ones([n_chains, n_features])} کار خواهد کرد. پیشفرض بعد چگالی ورود به سیستم به توان ¼ است. |
dual_averaging_kwargs | آرگومان های کلمه کلیدی اختیاری برای ارسال به tfp.mcmc.DualAveragingStepSizeAdaptation . به طور پیشفرض، یک target_accept_prob برابر با 0.85 تنظیم میشود، احتمال پذیرش در سراسر زنجیرهها با استفاده از میانگین هارمونیک کاهش مییابد، و پیشفرضهای کلاس در غیر این صورت استفاده میشوند. |
max_tree_depth | حداکثر عمق درخت که به طور ضمنی توسط NUTS ساخته شده است. حداکثر تعداد گامهای جهشی با 2**max_tree_depth محدود میشود، برای مثال، تعداد گرهها در یک درخت باینری max_tree_depth گرههای عمیق. تنظیم پیش فرض 10 تا 1024 مرحله جهشی طول می کشد. |
max_energy_diff | آستانه اسکالر تفاوت انرژی در هر جهش، نمونه های واگرایی به عنوان مراحل جهشی که از این آستانه فراتر می روند، تعریف می شوند. پیش فرض 1000 است. |
unrolled_leapfrog_steps | تعداد جهشهایی که باید در هر مرحله گسترش درخت باز شوند. یک ضریب خطی مستقیم را برای حداکثر طول مسیری که توسط max_tree_depth ذکر شده است اعمال می کند. پیش فرض ها 1 است. |
parallel_iterations | تعداد تکرارهایی که مجاز به اجرای موازی هستند. باید یک عدد صحیح مثبت باشد. برای اطلاعات بیشتر، tf.while_loop ببینید. |
seed | برای تنظیم دانه برای نتایج قابل تکرار استفاده می شود. برای اطلاعات بیشتر، به PRNGS and seeds مراجعه کنید. |
**pins | اینها برای شرطی کردن توزیع مشترک ارائه شده استفاده میشوند و مستقیماً به joint_dist.experimental_pin(**pins) ارسال میشوند. |
| پرتاب می کند |
|---|
MCMCOOMError | اگر حافظه مدل تمام شده باشد. سعی کنید n_keep کاهش دهید یا فهرستی از اعداد صحیح را بهعنوان n_chains به زنجیرههای نمونه ارسال کنید (به https://developers.google.com/meridian/docs/advanced-modeling/model-debugging#gpu-oom-error مراجعه کنید). |
sample_prior
مشاهده منبع
sample_prior(
n_draws: int, seed: (int | None) = None
)
نمونه هایی را از توزیع های قبلی ترسیم می کند.
| ارگ |
|---|
n_draws | تعداد نمونه های گرفته شده از توزیع قبلی. |
seed | برای تنظیم دانه برای نتایج قابل تکرار استفاده می شود. برای اطلاعات بیشتر، به PRNGS and seeds مراجعه کنید. |