Skip to main content

Inference algorithms for models based on Luce's choice axiom.

Project description

# choix

[![Build Status](https://travis-ci.org/lucasmaystre/choix.svg?branch=master)](https://travis-ci.org/lucasmaystre/choix) [![codecov](https://codecov.io/gh/lucasmaystre/choix/branch/master/graph/badge.svg)](https://codecov.io/gh/lucasmaystre/choix) [![Documentation Status](https://readthedocs.org/projects/choix/badge/?version=latest)](http://choix.lum.li/en/latest/?badge=latest)

choix is a Python library that provides inference algorithms for models based on Luce’s choice axiom. These (probabilistic) models can be used to explain and predict outcomes of comparisons between items.

  • Pairwise comparisons: when the data consists of comparisons between two items, the model variant is usually referred to as the Bradley-Terry model. It is closely related to the Elo rating system used to rank chess players.

  • Partial rankings: when the data consists of rankings over (a subset of) the items, the model variant is usually referred to as the Plackett-Luce model.

  • Top-1 lists: another variation of the model arises when the data consists of discrete choices, i.e., we observe the selection of one item out of a subset of items.

choix makes it easy to infer model parameters from these different types of data, using a variety of algorithms:

  • Luce Spectral Ranking

  • Minorization-Maximization

  • Rank Centrality

  • GMM using rank breaking

  • Approximate bayesian inference with expectation propagation

## Installation

Simply type

pip install choix

The library is under active development, use at your own risk.

## References

  • Lucas Maystre and Matthias Grossglauser, [Fast and Accurate Inference of Plackett-Luce Models][1], NIPS, 2015

  • David R. Hunter. [MM algorithms for generalized Bradley-Terry models][2], The Annals of Statistics 32(1):384-406, 2004.

  • François Caron and Arnaud Doucet. [Efficient Bayesian Inference for Generalized Bradley-Terry models][3]. Journal of Computational and Graphical Statistics, 21(1):174-196, 2012.

  • Sahand Negahban, Sewoong Oh, and Devavrat Shah, [Iterative Ranking from Pair-wise Comparison][4], NIPS 2012

  • Hossein Azari Soufiani, William Z. Chen, David C. Parkes, and Lirong Xia, [Generalized Method-of-Moments for Rank Aggregation][5], NIPS 2013

  • Wei Chu and Zoubin Ghahramani, [Extensions of Gaussian processes for ranking: semi-supervised and active learning][6], NIPS 2005 Workshop on Learning to Rank.

[1]: https://infoscience.epfl.ch/record/213486/files/fastinference.pdf [2]: http://sites.stat.psu.edu/~dhunter/papers/bt.pdf [3]: https://hal.inria.fr/inria-00533638/document [4]: https://papers.nips.cc/paper/4701-iterative-ranking-from-pair-wise-comparisons.pdf [5]: https://papers.nips.cc/paper/4997-generalized-method-of-moments-for-rank-aggregation.pdf [6]: http://www.gatsby.ucl.ac.uk/~chuwei/paper/gprl.pdf

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

choix-0.1.0.tar.gz (13.5 kB view details)

Uploaded Source

Built Distribution

choix-0.1.0-py3-none-any.whl (15.9 kB view details)

Uploaded Python 3

File details

Details for the file choix-0.1.0.tar.gz.

File metadata

  • Download URL: choix-0.1.0.tar.gz
  • Upload date:
  • Size: 13.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No

File hashes

Hashes for choix-0.1.0.tar.gz
Algorithm Hash digest
SHA256 952fc8d7d6c3bf8d19adc87e1b6efdaf210ef4f184f2707f43acf666dea9fda2
MD5 02747fef25f57e6dde9b276248f8d359
BLAKE2b-256 104a261e5d0379b6449d59eb6990442e790a00926ccf90249a13c3fad8df9adb

See more details on using hashes here.

File details

Details for the file choix-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for choix-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f169cb74ea1ee7704da7f60449fe57600b51d2c6ca9a09bc9b11da6097c0a210
MD5 fec575705e14f85be64741b0c122e8fb
BLAKE2b-256 4e8e78ef36f2f06fa1d43755a75c59b2e9d2b9ea897546748128781cee67be53

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