Skip to main content

APL-Brochu - The Implementation of the paper Active Preference Learning with Discrete Choice Data by Brochu et al. (2011)

Project description

Active Preference Learning with Discrete Choice Data

This is an unofficial implementation of the Active Preference Learning with Discrete Choice Data by Brochu et al. as published in NIPS 2007.

Why would this package be useful for you?

Imagine a scenario where you are trying to find a place to have lunch today. There are tons of places to eat around. An app presents you two restaurants to compare at a time and can help you reach a good enough restaurant in as few queries as possible. Each time you pick a restaurant, the model gradually learns what you want and hopefully, its suggestions get gradually better. This will save you a lot of time and when designed well, can be a much more fun way to search as opposed to going through a boring list view.

In general, if the following conditions are present, active preference can be useful for you:

  • User is searching for an item in a very large set of items that's impossible go through one by one.
  • User is okay with a good enough solution if it is going to be found shortly.
  • Items can be embedded in a vectors space where proximity in that space implies similarity in preference between items.

Installation

There are currently two modes of installation: bare bones, extras, development.

Whichever mode, first clone the repository.

git clone git@github.com:dorukhansergin/APL-Brochu.git

Bare Bones

The package requires:

numpy~=1.20.1 
scikit-learn~=0.24.1 
scipy

Change into the folder of the cloned repository and use pip to install.

pip install .

Extras

In addition to bare bones, the following packages will be installed:

streamlit
matplotlib

pip install .\[extras\]

Development

In addition to bare bones, the following packages will be installed:

pytest
pylint 
black 
rope

Change into the folder of the cloned repository and use pip to install, with the dev mode. The -e flag listens to change in code so it's recommended.

pip install -e .\[dev\]

You can run the tests using pytest with the simple pytest command.

Play with the Demo

See above for the installation of extras. The extras has a demo for you to get a feeling for the algorithm. Use the streamlit command to run it.

streamlit run extras/brochu2d.py

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

APL-Brochu-0.0.1.tar.gz (6.6 kB view details)

Uploaded Source

Built Distribution

APL_Brochu-0.0.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file APL-Brochu-0.0.1.tar.gz.

File metadata

  • Download URL: APL-Brochu-0.0.1.tar.gz
  • Upload date:
  • Size: 6.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.7.6

File hashes

Hashes for APL-Brochu-0.0.1.tar.gz
Algorithm Hash digest
SHA256 c523018983888d2b04a07af8b72493cd050d5b5e62b41360eb51b9e9effede4d
MD5 d22be51142b6dc3e3f5103f38d986592
BLAKE2b-256 26df033085f116b4134fd33be128985aeb9bd90b874e4b48f4e340a35b53cf58

See more details on using hashes here.

File details

Details for the file APL_Brochu-0.0.1-py3-none-any.whl.

File metadata

  • Download URL: APL_Brochu-0.0.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/3.7.3 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.55.1 CPython/3.7.6

File hashes

Hashes for APL_Brochu-0.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 1f5d64db93a2c4ae87c63e36ea827e98abcfd093a79c0bb43da3f8b0352323e4
MD5 9c7bc7d10d736296c3128e7194e41730
BLAKE2b-256 60ab4b988efa10494304adbe466a733318ffc5d58c295012b3a43e43e0c30547

See more details on using hashes here.

Supported by

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