Skip to main content

Advanced features for bandits with or without context.

Project description

ilovebandits

ilovebandits is a high-level Python package to work with contextual and multiarmed bandits with new released algorithms. In essence, this package adds novel ensemble of trees techniques for contextual bandits that the industry demands and that are not currently available in other places.

This package was born due to the need of having more advanced bandit algorithms and features for the finance industry.

Next version will also add the concept of composed rewards where you can feed the bandit with different type rewards in time as this was a requirement that a lot of problems face.

The implementation has been developed in Python 3. We are currently in the first version focusing on adding more core features and collecting feedback from the community.

Installation

Installation/Usage: Installation/Usage details in official docs

Documentation

Documentation: Official documentation of the project in readthedocs

Tutorial

Tutorial contextual bandits: Tutorial and examples contextual bandits

Tutorial multi-armed bandits: Tutorial and exmaples multi-armed bandits

Motivation

There are a lot of potential business problems that can be solved with bandits, but current implementations lack some features that can be very useful to apply bandits in new scenarios. The main goal of this package is to provide a simple and easy-to-use interface to work with bandits, while also providing some advanced features that are not available in other packages.

Main industry limitations that this package addresses:

  1. Advanced contextual bandits with ensembles of trees There are not many implementations of advanced contextual bandits that allow the use of ensemble-of-trees methods. This is a limitation because ensemble methods are very powerful for tabular data. They need less data than neural networks and can capture richer patterns than the common linear methods employed in bandits.

  2. Ability to define composed rewards In many real-world scenarios, the reward is not a single value but a combination of different sub-rewards that can be observed at different times. For example, in a recommendation system, the final reward can be a combination of immediate clicks, time spent on the platform, and long-term user retention. Being able to define and use these sub-rewards can significantly improve the performance of the bandit algorithm, and we can also update the bandit more often for each subpart as soon as it comes.


This package concentrates on

  1. The use of ensemble-of-trees methods for contextual bandits.
  2. The use of composed rewards where the bandit can be fed with different types of sub-rewards in time. Here, we define a long-term global reward, which we break down into smaller, shorter-term rewards that allow us to update the bandit much earlier than if we waited for the global reward.

These small updates also change the global reward estimate employed by the bandit to take the final decision.


This package is intended to provide a quick, as well as (hopefully) easy-to-understand, way of running bandit simulations and core functions to create ready-to-use solutions for the industry.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

ilovebandits-0.1.1.tar.gz (96.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

ilovebandits-0.1.1-py3-none-any.whl (42.9 kB view details)

Uploaded Python 3

File details

Details for the file ilovebandits-0.1.1.tar.gz.

File metadata

  • Download URL: ilovebandits-0.1.1.tar.gz
  • Upload date:
  • Size: 96.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ilovebandits-0.1.1.tar.gz
Algorithm Hash digest
SHA256 d55c1b254f8ffc305d206f65d12d115bb6fd59877eb5674784f1d4908137a280
MD5 2f3071976f65851cf95b90e71af584fa
BLAKE2b-256 d13fea504eb90df4688ac3b6c88ae9811a129796dec7db2a3829c89029995ce3

See more details on using hashes here.

Provenance

The following attestation bundles were made for ilovebandits-0.1.1.tar.gz:

Publisher: cd-pipeline.yml on Abel-24pal/ilovebandits

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file ilovebandits-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: ilovebandits-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 42.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for ilovebandits-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 50139903ed69ed9f1dda67c9176db3833a89412be8cf734e086f1d6b2643ba46
MD5 3df5cf5379b6862eba9516e8128e329e
BLAKE2b-256 79452d53354bd94842a0a9f2af7a226da960e92c8a4cb3b687d09bbee399bb8e

See more details on using hashes here.

Provenance

The following attestation bundles were made for ilovebandits-0.1.1-py3-none-any.whl:

Publisher: cd-pipeline.yml on Abel-24pal/ilovebandits

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page