Models for decision optimization and automation
Project description
Decision Engine
- the integration of ostensibly disparate models of decision automation into clear decision-centric interfaces.
Several libraries exist with the isolated forms of the models we're using with interfaces that expect ...
Our goal is to abstract that by one step to create an application-centric toolset.
The challenge this library attempts to solve is the integration of these different sets of models all under the interface structure of optimizing. discrete actions in the real world.
Model To-Do:
- gaussian thompson bandit ...
- UCB ... (no multi-sample)
- ... going to need some data generation infrastructure built
Installation
Installation can be
- of this repo as a package to allow usage of this repo into a different project
- of a sufficient python environment to allow further development.
done as a package to later be installed elsewhere or of
Leverage the python package functionality to do a minimal installation of the models and surrounding piping as a stand-alone package. Use this repo directly and set up a local to further develop this package.
Package Build and Install
We use Python's setuptools
to handle installation.
You can build the wheel and install it elsewhere manually using:
# from within this repo's root:
python setup.py bdist_wheel
# from within your other project that you're installing this wheel into:
pip install decision_engine-0.0.1-py3-none-any.whl
Or you can install it directly from Github usisng the library name
git+ssh://git@github.com/BellwethrInc/decision-engine.git
as you would
install any other library through either a pip install [x]
or including it
directly in your requirements.txt
file.
Or if you prefer using https
rather than ssh to connect to github,
git+https://github.com/BellwethrInc/decision-engine.git
works as well.
After we get proper releases set up, you'll be able to do
git+ssh://git@github.com/BellwethrInc/decision-engine.git@v0.0.0#egg=decision_engine
to specify a release as well.
Coming soon:
- proper versioning
- pypi-based install
As a Developer
Within this repo's root, create a virtualenv (or your conda equivalent) and install the dependencies.
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
Models
Bandits
While bandits are traditionally framed as a learner that dials in to the most rewarding action based on actual returns from the different actions sampled, the state within a bandit at any given moment can be trivially re-built from records of past treatments and responses.
This results in two shapes of interfaces:
- A "model" that is trained on historical data, is its own object to be persisted, with the expectation that you'll keep training it as you use it to make further decisions.
- A simple aggregation of historical data where the observed statistics also allows optimized selection of next actions.
The bandit models included here have overlapping interfaces that allow the first and/or the second pattern to be used. For example, a model that was trained live using the first pattern would be identical to another model that was trained from scratch using the aggregated data that was fed to the first model. Both the live-built and the rebult-from-historical-data models could then be used as live models for future decisions.
Batch
Some training methods lend themselves nicely to pulling sets of next-actions while some don't. (coming soon...)
Nonstationary
- coming soon. default behavior decays on a per-sample. However, our use cases would more practicaly decay from timestamp.
Contextual Bandits
- coming soon
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file decision_engine-0.0.0b1.tar.gz
.
File metadata
- Download URL: decision_engine-0.0.0b1.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 8b641f24f45a647adedbe0b95364a7ffe42f473c6261faefe930b6f345b6e750 |
|
MD5 | 81c1913cc5c20d13b0783e99cb687e80 |
|
BLAKE2b-256 | 4c10b9a29dc1d1d229bd67f00bad188a2615f74b6d830a49cb2d93821842f437 |
File details
Details for the file decision_engine-0.0.0b1-py3-none-any.whl
.
File metadata
- Download URL: decision_engine-0.0.0b1-py3-none-any.whl
- Upload date:
- Size: 8.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.8.5
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 7f0af0ec2504f56964a09a1453cd30bd53c9531fb93c3db4f2f59910c0b3c55b |
|
MD5 | 6e887939b2da9629dcd8a7c5ade81d71 |
|
BLAKE2b-256 | 0d83d05d9c9535e8504ffa81f102826d4c27c93804452068e040b2ce569069b8 |