meridian.model.model.Meridian

包含適配 Meridian MMM 模型的主要功能。

input_data 包含模型輸入資料的 InputData 物件。
model_spec 包含模型規格的 ModelSpec 物件。
inference_data 可變更arviz.InferenceData 物件,其中包含模型擬合後的結果資料。
n_geos 資料中的地理區域數量。
n_media_channels 資料中的媒體管道數量。
n_rf_channels 資料中觸及與頻率 (RF) 管道的數量。
n_organic_media_channels 資料中自然媒體管道的數量。
n_organic_rf_channels 資料中自然觸及數與頻率 (RF) 管道的數量。
n_controls 資料中的控制變數數量。
n_non_media_channels 資料中非媒體處置管道的數量。
n_times 指標或支出資料中的時間週期數量。
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 建構的張量。
non_media_treatments input_data.non_media_treatments 建構的張量。
population input_data.population 建構的張量。
media_tensors 一系列由 input_data 衍生的媒體張量。
rf_tensors 觸及數與頻率 (RF) 媒體張量集合。
organic_media_tensors 自然媒體張量集合。
organic_rf_tensors 一系列自然觸及與頻率 (RF) 媒體張量。
total_spend 包含總支出的張量,包括 media_tensors.media_spendrf_tensors.rf_spend
controls_transformer ControlsTransformer 可使用模型的控制項資料來調整控制項張量。
non_media_transformer CenteringAndScalingTransformer 可使用模型的非媒體處理資料,調整非媒體處理張量。
kpi_transformer KpiTransformer,可使用模型的 KPI 資料調整 KPI 張量。
controls_scaled 控制值張量,經過人口和中位值正規化。
non_media_treatments_scaled 非媒體處理張量,經由人口和中位數值正規化。
kpi_scaled 根據母體和中位數值正規化的 KPI 張量。
media_effects_dist 用於指定媒體隨機效果在各區域的分布情形。
unique_sigma_for_each_geo 布林值,指出是否要為每個地理區域使用專屬的殘差變異。
prior_broadcast 包含廣播發送的發送項目的 PriorDistribution 物件。
baseline_geo_idx 基準地理區域的索引。
holdout_id 包含保留 ID 的張量 (如有)。

方法

adstock_hill_media

查看原始碼

按照指定順序,使用 Adstock 和 Hill 函式轉換媒體。

Args
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 轉換的媒體。

adstock_hill_rf

查看原始碼

使用 Hill 和 Adstock 函式轉換觸及數和展示頻率 (RF)。

Args
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] 的張量,代表 Hill 和 Adstock 轉換的 RF。

expand_selected_time_dims

查看原始碼

根據所選時間驗證並傳回時間維度值。

如果 start_dateend_date 都為 None,則傳回 None。

Args
start_date 所選時間範圍的開始日期。如果為 None,則表示輸入資料中最早的時間維度值。
end_date 所選時間範圍的結束日期。如果為 None,則表示輸入資料中最新的時間維度值。

傳回
在所選時間範圍內,輸入資料中的時間維度值清單 (以 Meridian 格式字串表示),或不執行任何操作並傳回 None (如果兩個引數都是 None,或 start_dateend_date 對應於輸入資料中的整個時間範圍)。

升起
如果 start_dateend_date 不在輸入資料時間維度中,則會傳回 ValueError。

populate_cached_properties

查看原始碼

積極啟用所有快取的資源。

這對於使用此 Meridian 物件做為擷取的結束函式來建立 tf.function 運算圖表相當實用。在運算圖中,內部狀態變異會造成問題,因此這個方法會在建立運算圖之前,將物件的狀態凍結。

sample_posterior

查看原始碼

執行後設分布的馬可夫鏈蒙地卡羅 (MCMC) 取樣。

如要進一步瞭解引數,請參閱 windowed_adaptive_nuts

Args
n_chains MCMC 鏈條數量。給定整數序列時,系統會為每個元素呼叫 windowed_adaptive_nuts 一次。每個 windowed_adaptive_nuts 呼叫的 n_chains 引數都會等於相應的整數元素。使用整數清單,可以將 windowed_adaptive_nuts 呼叫的鏈結拆成多個呼叫,每個呼叫的鏈結數量較少。這麼做可以減少記憶體用量。由於每個取樣呼叫只會在較少的鏈結中進行最佳化,因此可能需要增加適應步驟數量才能達到收斂。
n_adapt 每個鏈條的調整抽樣次數。
n_burnin 每個鏈結的初始測試次數。適應性繪圖會在適應性繪圖後,保留繪圖之前發生。
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_prob0.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 和種子」。
**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

查看原始碼

從先前的分布圖中抽樣。

Args
n_draws 從先前分布圖中抽取的樣本數。
seed 用於設定可重現結果的種子。詳情請參閱「PRNGS 和種子」。