Skip to main content

codecov doc pypi

Coba

What is it?

Coba is a powerful framework built to facilitate research with online contextual bandit (CB) algorithms.

Documentation

To start using Coba right away we recommend visiting our documentation.

How do you research?

Think for a second about the last time you considered evaluating CB methods for a research project

  1. Was it easy to incorporate your own data sets during CB analysis?
  2. Was it easy to incorporate the wide array of available CB algorithms?
  3. Was it easy to create, run and share the results of CB experiments?

Coba was built from the ground up to do these three things and more.

The Coba Way

Coba is...

  • ... light-weight (there are minimal project dependencies to get started)
  • ... verbose (sophisticated logging is built-in for meaningful, readable feedback on log running jobs)
  • ... robust (results are frequently saved to disk so that no work is lost if research is interrupted for any reason)
  • ... lazy (resources are loaded just-in-time and then released quickly to minimize resource requirements)
  • ... a duck? (all code uses duck-typing so that inheritance is a non-issue when extending built-in functionality)

But don't take our word for it. We encourage you to look at the code yourself or read more below.

Workflow

Coba is architected around a simple workflow: (Learners, Environments) -> Experiments -> Results -> Analysis.

Environments represent unique CB problems that need to be solved. Learners are the CB algorithms that we can use to solve these problems. Experiments are combinations of Environments and Learners that we want to evaluate. And Results are the outcome of an Experiment, containing all the data from the Experiment.

Learners

Learners are algorithms which are able to improve their action selection through interactions with environments.

A number of algorithms are provided natively with Coba for quick comparsions. These include:

  • All contextual bandit learners in Vowpal Wabbit
  • UCB1-Tuned Bandit Learner (Auer et al., 2002)
  • LinUCB (Li and Chu et al., 2011)
  • Linear Thompson Sampling (Agrawal and Goyal et al., 2013)
  • Corral (Agarwal et al., 2017)

Environments

Environments are the core unit of evaluation in Coba. They are nothing more than a sequence of interactions with contexts, actions and rewards. A number of tools have been built into Coba to make simulation creation easier. All these tools are defined in the coba.environments module. We describe a few of these tools here.

Creating Environments From Classification Data Sets

Classification data sets are the easiest way to create Environments in Coba. Coba natively supports:

  • Binay, multiclass and multi-label problems
  • Dense and sparse representations
  • Openml, Csv, Arff, Libsvm, and the extreme classification (Manik) format
  • Local files and files over http (with local caching)

Creating Environments From Scratch

If more customization is needed beyond what is offered above then you can easily create your own simulation by implementing Coba's Environment interface and generating interactions.

Experiments

Experiments are combinations of Learners and Environments. The Experiment class orchestrates the complex tasks of evaluating learners on environments in a resource efficient, repeatable, and robust manner. Experiments can be run on any number of processes (we often run on 96 core machines) and writes all results to file as it runs so that it can be restarted if it gets interrupted.

Results

The end result of an Experiment is a Result object that supports easy analysis. The result class provides a number of plots as well as filtering capabilities out of the box. If the built in functionality isn't advanced enough data can be exported to pandas dataframes where all manner of advanced filtering and plotting can be performed.

Examples

To learn more, many working code examples are provided in the documentation.

Metadata

Release files for coba 8.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for coba 8.1.0
File Size Uploaded
coba-8.1.0.tar.gz 147.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for coba 8.1.0
File Interpreter ABI Platform
coba-8.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 315.9 kB

Release files / coba-8.1.0.tar.gz

Download URL coba-8.1.0.tar.gz
Size 147.8 kB
Tags Source
SHA-256 checksum
How to use checksums
93de66582da991c463cfd14690701ed49c342798cecf3a160ac8b75f1c16a7fc
BLAKE2b-256 checksum
How to use checksums
0fc76cf53a1de4d26119f6269c6421137947a3da30b5b9a44120c2b4d4ed8e47
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release files / coba-8.1.0-py3-none-any.whl

Download URL coba-8.1.0-py3-none-any.whl
Size 168.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
91c2c27b8f6797745aa7fc792b86eeac44a2957d7e82aeefe6dec82dbf114db6
BLAKE2b-256 checksum
How to use checksums
5e6d879ca8721a4acd20b4ad88b6457f4cc44ea4af243d09fe2abbc4b7fed8ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 30, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

8.1.0 This release

2 release files

8.0.5

2 release files

8.0.4

2 release files

8.0.3

2 release files

8.0.2

2 release files

8.0.1

2 release files

8.0.0

2 release files

7.2.0

2 release files

7.1.6

2 release files

7.1.5

2 release files

7.1.4

2 release files

7.1.3

2 release files

7.1.2

2 release files

7.1.1

2 release files

7.1.0

2 release files

7.0.7

2 release files

7.0.6

2 release files

7.0.5

2 release files

7.0.4

2 release files

7.0.3

2 release files

7.0.2

2 release files

7.0.1

2 release files

7.0.0

2 release files

6.5.0

2 release files

6.4.2

2 release files

6.4.1

2 release files

6.4.0

2 release files

6.3.0

2 release files

6.2.12

2 release files

6.2.11

2 release files

6.2.10

2 release files

6.2.9

2 release files

6.2.8

2 release files

6.2.7

2 release files

6.2.6

2 release files

6.2.5

2 release files

6.2.4

2 release files

6.2.3

2 release files

6.2.2

2 release files

6.2.1

2 release files

6.2.0

2 release files

6.1.0

2 release files

6.0.1

2 release files

6.0.0

2 release files

5.1.0

2 release files

5.0.1

2 release files

5.0.0

2 release files

4.11.0

2 release files

4.10.3

2 release files

4.10.2

2 release files

4.10.1

2 release files

4.9.1

2 release files

4.9.0

2 release files

4.8.9

2 release files

4.8.8

2 release files

4.8.7

2 release files

4.8.6

2 release files

4.8.5

2 release files

4.8.4

2 release files

4.8.3

2 release files

4.8.2

2 release files

4.8.1

2 release files

4.8.0

2 release files

4.7.1

2 release files

4.7.0

2 release files

4.6.12

2 release files

4.6.11

2 release files

4.6.10

2 release files

4.6.9

2 release files

4.6.8

2 release files

4.6.7

2 release files

4.6.6

2 release files

4.6.5

2 release files

4.6.4

2 release files

4.6.3

2 release files

4.6.2

2 release files

4.6.1

2 release files

4.6.0

2 release files

4.5.1

2 release files

4.5.0

2 release files

4.4.1

2 release files

4.4.0

2 release files

4.3.0

2 release files

4.2.2

2 release files

4.2.1

2 release files

4.2.0

2 release files

4.1.7

2 release files

4.1.6

2 release files

4.1.5

2 release files

4.1.4

2 release files

4.1.3

2 release files

4.1.2

2 release files

4.1.1

2 release files

4.1.0

2 release files

4.0.4

2 release files

4.0.3

2 release files

4.0.2

2 release files

4.0.1

2 release files

4.0.0

2 release files

3.8.1

2 release files

3.8.0

2 release files

3.7.0

2 release files

3.6.3

2 release files

3.6.2

2 release files

3.6.1

2 release files

3.6.0

2 release files

3.5.1

2 release files

3.5.0

2 release files

3.4.0

2 release files

3.3.0

2 release files

3.2.2

2 release files

3.2.1

2 release files

3.2.0

2 release files

3.1.0

2 release files

3.0.2

2 release files

3.0.1

2 release files

3.0.0

2 release files

2.9.7

2 release files

2.9.6

2 release files

2.9.5

2 release files

2.9.4

2 release files

2.9.3

2 release files

2.9.2

2 release files

2.9.1

2 release files

2.9.0

2 release files

2.8.8

2 release files

2.8.7

2 release files

2.8.6

2 release files

2.8.5

2 release files

2.8.4

2 release files

2.8.3

2 release files

2.8.2

2 release files

2.8.1

2 release files

2.8.0

2 release files

2.7.8

2 release files

2.7.7

2 release files

2.7.6

2 release files

2.7.5

2 release files

2.7.4

2 release files

2.7.3

2 release files

2.7.2

2 release files

2.7.1

2 release files

2.7.0

2 release files

2.6.1

2 release files

2.6.0

2 release files

2.5.1

2 release files

2.5.0

2 release files

2.4.1

2 release files

2.4.0

2 release files

2.3.0

2 release files

2.2.2

2 release files

2.2.1

2 release files

2.2.0

2 release files

2.1.0

2 release files

2.0.7

2 release files

2.0.6

2 release files

2.0.5

2 release files

2.0.4

2 release files

2.0.3

2 release files

2.0.2

2 release files

2.0.1

2 release files

2.0.0

2 release files

1.8.2

2 release files

1.8.1

2 release files

1.8.0

2 release files

1.7.0

2 release files

1.6.5

2 release files

1.5.5

2 release files

1.5.4

2 release files

1.5.3

2 release files

1.5.2

2 release files

1.5.1

2 release files

1.5.0

2 release files

1.4.1

2 release files

1.4.0

2 release files

1.3.0

2 release files

1.2.0

2 release files

1.1.0

2 release files

1.0.3

2 release files

1.0.2

2 release files

1.0.1

2 release files

1.0.0

2 release files

0.8.1

2 release files

0.8.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page