meridian.model.model.Meridian

Inclut la fonctionnalité principale permettant d'ajuster le modèle MMM Meridian.

input_data Objet InputData contenant les données d'entrée du modèle.
model_spec Objet ModelSpec contenant les spécifications du modèle.
inference_data Objet arviz.InferenceData mutable contenant les données résultant de l'ajustement du modèle.
n_geos Nombre de zones géographiques dans les données.
n_media_channels Nombre de canaux média dans les données.
n_rf_channels Nombre de canaux avec couverture et fréquence dans les données.
n_organic_media_channels Nombre de canaux média naturels dans les données.
n_organic_rf_channels Nombre de canaux avec couverture et fréquence naturelles dans les données.
n_controls Nombre de variables de contrôle dans les données.
n_non_media_channels Nombre de canaux de traitement non média dans les données.
n_times Nombre de périodes dans les données sur les KPI ou les dépenses.
n_media_times Nombre de périodes dans les données média.
is_national Booléen indiquant si les données sont nationales (une seule zone géographique) ou non (plusieurs zones géographiques).
knot_info KnotInfo provenant des données d'entrée et des spécifications du modèle.
kpi Tensor construit à partir de input_data.kpi.
revenue_per_kpi Tensor construit à partir de input_data.revenue_per_kpi. Si input_data.revenue_per_kpi est défini sur "None", cet attribut l'est aussi.
controls Tensor construit à partir de input_data.controls.
non_media_treatments Tensor construit à partir de input_data.non_media_treatments.
population Tensor construit à partir de input_data.population.
media_tensors Collection de Tensors média provenant de input_data.
rf_tensors Collection de Tensors média avec couverture et fréquence.
organic_media_tensors Collection de Tensors média naturels.
organic_rf_tensors Collection de Tensors média avec couverture et fréquence naturelles.
total_spend Tensor contenant les dépenses totales, y compris media_tensors.media_spend et rf_tensors.rf_spend.
controls_transformer ControlsTransformer permettant de mettre à l'échelle les Tensors de contrôles à l'aide des données de contrôles du modèle.
non_media_transformer CenteringAndScalingTransformer permettant de mettre à l'échelle les Tensors de traitement non média à l'aide des données de traitement non média du modèle.
kpi_transformer KpiTransformer permettant de mettre à l'échelle les Tensors de KPI à l'aide des données de KPI du modèle.
controls_scaled Tensor de contrôles normalisé selon la population et la valeur médiane.
non_media_treatments_scaled Tensor de traitement non média normalisé selon la population et la valeur médiane.
kpi_scaled Tensor de KPI normalisé selon la population et la valeur médiane.
media_effects_dist Chaîne permettant de spécifier la répartition des effets aléatoires des médias dans différentes zones géographiques.
unique_sigma_for_each_geo Valeur booléenne indiquant si une variance résiduelle unique doit être utilisée pour chaque zone géographique.
prior_broadcast Objet PriorDistribution contenant des distributions diffusées.
baseline_geo_idx Index de la zone géographique de référence.
holdout_id Tenseur contenant l'ID de validation, le cas échéant.
posterior_sampler_callable Appelable PosteriorMCMCSampler lié à ce modèle.
prior_sampler_callable Appelable PriorDistributionSampler lié à ce modèle.

Méthodes

adstock_hill_media

Afficher la source

Transforme le média à l'aide des fonctions Adstock et Hill dans l'ordre souhaité.

Args
media Tensor de dimensions (n_geos, n_media_times, n_media_channels) contenant des valeurs d'exécution média non négatives. Il s'agit généralement d'impressions, mais il peut s'agir de n'importe quelle métrique, comme media_spend. Les clics sont souvent utilisés pour la recherche sponsorisée.
alpha Distribution uniforme pour les calculs Adstock et Hill.
ec Distribution semi-normale décalée pour les calculs Adstock et Hill.
slope Distribution déterministe pour les calculs Adstock et Hill.
n_times_output Nombre de périodes à générer. Cet argument est facultatif lorsque le nombre de périodes dans media est égal à self.n_media_times. Dans ce cas, n_times_output est défini par défaut sur self.n_times.

Renvoie
Tensor avec des dimensions [..., n_geos, n_times, n_media_channels] représentant le média transformé par Adstock et Hill.

adstock_hill_rf

Afficher la source

Transforme la couverture et la fréquence à l'aide des fonctions Hill et Adstock.

Args
reach Tensor de dimensions (n_geos, n_media_times, n_rf_channels) contenant des valeurs média non négatives pour la couverture.
frequency Tensor de dimensions (n_geos, n_media_times, n_rf_channels) contenant des valeurs média non négatives pour la fréquence.
alpha Distribution uniforme pour les calculs Adstock et Hill.
ec Distribution semi-normale décalée pour les calculs Adstock et Hill.
slope Distribution déterministe pour les calculs Adstock et Hill.
n_times_output Nombre de périodes à générer. Cet argument est facultatif lorsque le nombre de périodes dans reach est égal à self.n_media_times. Dans ce cas, n_times_output est défini par défaut sur self.n_times.

Renvoie
Tensor avec des dimensions [..., n_geos, n_times, n_rf_channels] représentant la couverture et la fréquence transformées par Adstock et Hill.

create_inference_data_coords

Afficher la source

Crée des coordonnées de données pour les données d'inférence.

create_inference_data_dims

Afficher la source

expand_selected_time_dims

Afficher la source

Valide et renvoie les valeurs de dimension temporelle en fonction des heures sélectionnées.

Si start_date et end_date sont définies sur "None", renvoie "None". Si elles sont spécifiées, start_date et end_date sont inclusives et doivent figurer dans les coordonnées temporelles des données d'entrée.

Args
start_date Date de début de la période sélectionnée. "None" implique la valeur de dimension temporelle la plus ancienne dans les données d'entrée.
end_date Date de fin de la période sélectionnée. "None" implique la valeur de dimension temporelle la plus récente dans les données d'entrée.

Renvoie
Une liste de valeurs de dimension temporelle (comme des chaînes au format Meridian) dans les données d'entrée au cours de la période sélectionnée, ou n'effectue aucune action et transmet "None" si les deux arguments sont définis sur "None", ou si start_date et end_date correspondent à la période complète dans les données d'entrée.

Génère
ValueError si start_date ou end_date ne figurent pas dans les dimensions temporelles des données d'entrée.

populate_cached_properties

Afficher la source

Active prématurément toutes les propriétés mises en cache.

Cette méthode est utile pour créer un graphique de calcul tf.function avec cet objet Meridian lors d'une fermeture capturée. Dans le graphique de calcul, les mutations d'état internes sont problématiques. Cette méthode permet donc de geler les états de l'objet avant la création du graphique de calcul.

sample_posterior

Afficher la source

Exécute un échantillonnage de la chaîne de Markov Monte-Carlo (MCMC) des distributions a posteriori.

Pour en savoir plus sur les arguments, consultez windowed_adaptive_nuts.

Les échantillons générés sont fusionnés dans la propriété inference_data Arviz de ce modèle.

Args
n_chains Nombre de chaînes MCMC. Pour une séquence d'entiers donnée, windowed_adaptive_nuts sera appelé une fois pour chaque élément. L'argument n_chains de chaque appel windowed_adaptive_nuts sera égal à l'élément entier correspondant. À l'aide d'une liste d'entiers, il est possible de diviser les chaînes d'un appel windowed_adaptive_nuts en plusieurs appels avec moins de chaînes par appel. Cela peut permettre de réduire l'utilisation de la mémoire. Cela peut nécessiter plus d'étapes d'adaptation pour la convergence, car l'optimisation se produit sur moins de chaînes par appel d'échantillonnage.
n_adapt Nombre de tirages d'adaptation par chaîne.
n_burnin Nombre de tirages en période de chauffe par chaîne. Les tirages en période de chauffe ont lieu après les tirages d'adaptation et avant les tirages conservés.
n_keep Nombre entier de tirages par chaîne à conserver pour l'inférence.
current_state Structure facultative des Tensors pour initialiser l'échantillonnage. Utilisez la même forme et la même structure que model.experimental_pin(**pins).sample(n_chains).
init_step_size Entier facultatif déterminant où initialiser la taille de pas pour l'intégrateur "leapfrog" (saut de mouton). La structure doit être diffusée avec current_state. Par exemple, si l'état initial est { 'a': tf.zeros(n_chains), 'b': tf.zeros([n_chains, n_features]), }, ces trois fonctionneront : 1., {'a': 1., 'b': 1.} ou {'a': tf.ones(n_chains), 'b': tf.ones([n_chains, n_features])}. Valeur par défaut : dimension de la densité logarithmique à la puissance ¼.
dual_averaging_kwargs Arguments de mots clés dict facultatifs à transmettre à tfp.mcmc.DualAveragingStepSizeAdaptation. Par défaut, une target_accept_prob de 0.85 est définie, les probabilités d'acceptation dans les chaînes sont réduites à l'aide d'une moyenne harmonique et les valeurs par défaut de la classe sont utilisées dans le cas contraire.
max_tree_depth Profondeur maximale de l'arborescence créée implicitement par NUTS. Le nombre maximal d'étapes "leapfrog" est limité par 2**max_tree_depth (par exemple, le nombre de nœuds dans un arbre binaire avec une profondeur de max_tree_depth nœuds). Le paramètre par défaut de 10 contient jusqu'à 1 024 étapes "leapfrog".
max_energy_diff Seuil scalaire des différences d'énergie à chaque saut de mouton. Les échantillons de divergence sont définis comme des étapes "leapfrog" qui dépassent ce seuil. La valeur par défaut est 1000.
unrolled_leapfrog_steps Nombre de sauts de mouton à déployer par étape de développement de l'arborescence. Applique un multiplicateur linéaire direct à la longueur de trajectoire maximale qu'implique max_tree_depth. La valeur par défaut est 1.
parallel_iterations Nombre d'itérations qui peuvent être exécutées en parallèle. Vous devez saisir un entier positif. Pour en savoir plus, consultez tf.while_loop.
seed Permet de définir la graine pour des résultats reproductibles. Pour en savoir plus, consultez Générateur de nombres pseudo-aléatoires et graines.
**pins Ils sont utilisés pour conditionner la distribution commune fournie et sont transmis directement à joint_dist.experimental_pin(**pins).

Génère
MCMCOOMError Si la mémoire du modèle est saturée. Essayez de réduire n_keep ou de transmettre une liste d'entiers en tant que n_chains pour échantillonner les chaînes de manière séquentielle. Pour en savoir plus, consultez la section Erreur ResourceExhaustedError lors de l'exécution de Meridian.sample_posterior.

sample_prior

Afficher la source

Génère des échantillons à partir des distributions a priori.

Les échantillons générés sont fusionnés dans la propriété inference_data Arviz de ce modèle.

Args
n_draws Nombre d'échantillons générés à partir de la distribution a priori.
seed Permet de définir la graine pour des résultats reproductibles. Pour en savoir plus, consultez Générateur de nombres pseudo-aléatoires et graines.