![]() |
Inclut la fonctionnalité principale permettant d'ajuster le modèle MMM Meridian.
meridian.model.model.Meridian(
input_data: meridian.data.input_data.InputData
,
model_spec: (meridian.model.spec.ModelSpec
| None) = None,
inference_data: (az.InferenceData | None) = None
)
Méthodes
adstock_hill_media
adstock_hill_media(
media: tf.Tensor,
alpha: tf.Tensor,
ec: tf.Tensor,
slope: tf.Tensor,
n_times_output: (int | None) = None
) -> tf.Tensor
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
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
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
create_inference_data_coords(
n_chains: int, n_draws: int
) -> Mapping[str, np.ndarray | Sequence[str]]
Crée des coordonnées de données pour les données d'inférence.
create_inference_data_dims
create_inference_data_dims() -> Mapping[str, Sequence[str]]
expand_selected_time_dims
expand_selected_time_dims(
start_date: (tc.Date | None) = None, end_date: (tc.Date | None) = None
) -> (list[str] | None)
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
populate_cached_properties()
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
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
)
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
sample_prior(
n_draws: int, seed: (int | None) = None
)
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. |