Bayesian experiment¶
Main class and utilities to run, explore and visualize a Bayesian experiment for A/B and multivariate testing.
Experiment¶
-
class
cprior.experiment.Experiment(name, test, stopping_rule='expected_loss', epsilon=1e-05, min_n_samples=None, max_n_samples=None, verbose=False, **options)¶ Bases:
objectBayesian experiment.
Parameters: - name (str) – Experiment name.
- test (object) – A multivariate test instance. This is a class inherit from
cprior.cdist.base.BayesMVTest. - stopping_rule (str (default="expected_loss")) – The stopping rule or metric to be used throughout the experiment. Options are “probability”, “probability_vs_all”, “expected_loss” and “expected_loss_vs_all”.
- epsilon (float (default=1e-5)) – The epsilon or threshold to be checked throughout the experiment. The
experiment will terminate with a winner variant if the metric value
reaches
epsilon. - min_n_samples (int or None (default=None)) – The minimum number of samples for any variant.
- max_n_samples (int or None (default=None)) – The maximum number of samples for any variant.
- verbose (int or bool (default=False)) – Controls verbosity of output.
- **options – For other keyword-only arguments. For example,
nig_metricwith options"mu"and"sigma_sq".
-
variants_¶ The variants in the experiment.
Type: list
-
n_variants_¶ The number of variants in the experiment.
Type: int
-
n_samples_¶ The total number of samples of all variants throughout the experimentation.
Type: int
-
n_updates_¶ The total number of updates throughout the experimentation.
Type: int
-
describe()¶ Experiment settings.
-
load(pickle_path)¶ Load experiment from a given pickle path.
Parameters: pickle_path (str) – Path of the pickle object.
-
plot_metric()¶ Plot stopping rule metric over updates/time.
-
plot_stats()¶ Plot statistics (mean and CI intervals) over updates/time.
-
run_update(**data)¶ Update one or various Bayesian models with new data.
Parameters: **data (dict) – Dictionary with key=variant and value=data, e.g. **{"A": data_A}.
-
save(pickle_path)¶ Save this experiment to the given pickle path.
Parameters: pickle_path (str) – Path of the pickle object.
-
stats()¶ Experiment main statistics on collected data.
-
summary()¶ Experiment summary with several decision metrics.
If a winner has been declared, the corresponding row is highlighted in green.
Plotting¶
-
cprior.experiment.experiment_plot_metric(experiment)¶ Plot stopping rule metric over updates/time.
Parameters: experiment (object) – A Bayesian experiment instance.
-
cprior.experiment.experiment_plot_stats(experiment)¶ Plot statistics (mean and CI intervals) over updates/time.
Parameters: experiment (object) – A Bayesian experiment instance.
Utilities and reporting tools¶
-
cprior.experiment.experiment_describe(experiment)¶ Experiment settings.
Parameters: experiment (object) – A Bayesian experiment instance.
-
cprior.experiment.experiment_stats(experiment)¶ Experiment main statistics on collected data.
Parameters: experiment (object) – A Bayesian experiment instance. Returns: stats Return type: pandas.DataFrame
-
cprior.experiment.experiment_summary(experiment)¶ Experiment summary with several decision metrics.
If a winner has been declared, the corresponding row is highlighted in green.
Parameters: experiment (object) – A Bayesian experiment instance. Returns: stats Return type: pandas.DataFrame