choix
=====
|build-status| |coverage| |docs|
``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.
- **Choices in a network**: when the data consists of counts of the number of
visits to each node in a network, the model is known as the *Network Choice
Model*.
``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
- Approximate Bayesian inference with expectation propagation
Getting started
---------------
To install the latest release directly from PyPI, simply type::
pip install choix
To get started, you might want to explore one of these notebooks:
- `Introduction using pairwise-comparison data
<https://github.com/lucasmaystre/choix/blob/master/notebooks/intro-pairwise.ipynb>`_
- `Case study: analyzing the GIFGIF dataset
<https://github.com/lucasmaystre/choix/blob/master/notebooks/gifgif-dataset.ipynb>`_
- `Using ChoiceRank to understand traffic on a network
<https://github.com/lucasmaystre/choix/blob/master/notebooks/choicerank-tutorial.ipynb>`_
- `Approximate Bayesian inference using EP
<https://github.com/lucasmaystre/choix/blob/master/notebooks/ep-example.ipynb>`_
You can also find more information on the `official documentation
<http://choix.lum.li/en/latest/>`_. In particular, the `API reference
<http://choix.lum.li/en/latest/api.html>`_ contains a good summary of the
library's features.
References
----------
- Hossein Azari Soufiani, William Z. Chen, David C. Parkes, and Lirong Xia,
`Generalized Method-of-Moments for Rank Aggregation`_, NIPS 2013
- François Caron and Arnaud Doucet. `Efficient Bayesian Inference for
Generalized Bradley-Terry models`_. Journal of Computational and Graphical
Statistics, 21(1):174-196, 2012.
- Wei Chu and Zoubin Ghahramani, `Extensions of Gaussian processes for ranking\:
semi-supervised and active learning`_, NIPS 2005 Workshop on Learning to
Rank.
- David R. Hunter. `MM algorithms for generalized Bradley-Terry models`_, The
Annals of Statistics 32(1):384-406, 2004.
- Ravi Kumar, Andrew Tomkins, Sergei Vassilvitskii and Erik Vee, `Inverting a
Steady-State`_, WSDM 2015.
- Lucas Maystre and Matthias Grossglauser, `Fast and Accurate Inference of
Plackett-Luce Models`_, NIPS, 2015.
- Lucas Maystre and M. Grossglauser, `ChoiceRank\: Identifying Preferences from
Node Traffic in Networks`_, ICML 2017.
- Sahand Negahban, Sewoong Oh, and Devavrat Shah, `Iterative Ranking from
Pair-wise Comparison`_, NIPS 2012.
.. _Generalized Method-of-Moments for Rank Aggregation:
https://papers.nips.cc/paper/4997-generalized-method-of-moments-for-rank-aggregation.pdf
.. _Efficient Bayesian Inference for Generalized Bradley-Terry models:
https://hal.inria.fr/inria-00533638/document
.. _Extensions of Gaussian processes for ranking\: semi-supervised and active learning:
http://www.gatsby.ucl.ac.uk/~chuwei/paper/gprl.pdf
.. _MM algorithms for generalized Bradley-Terry models:
http://sites.stat.psu.edu/~dhunter/papers/bt.pdf
.. _Inverting a Steady-State:
http://theory.stanford.edu/~sergei/papers/wsdm15-cset.pdf
.. _Fast and Accurate Inference of Plackett-Luce Models:
https://infoscience.epfl.ch/record/213486/files/fastinference.pdf
.. _ChoiceRank\: Identifying Preferences from Node Traffic in Networks:
https://infoscience.epfl.ch/record/229164/files/choicerank.pdf
.. _Iterative Ranking from Pair-wise Comparison:
https://papers.nips.cc/paper/4701-iterative-ranking-from-pair-wise-comparisons.pdf
.. |build-status| image:: https://api.travis-ci.com/lucasmaystre/choix.svg?branch=master
:alt: build status
:target: https://app.travis-ci.com/github/lucasmaystre/choix
.. |coverage| image:: https://codecov.io/gh/lucasmaystre/choix/branch/master/graph/badge.svg
:alt: code coverage
:target: https://codecov.io/gh/lucasmaystre/choix
.. |docs| image:: https://readthedocs.org/projects/choix/badge/?version=latest
:alt: documentation status
:target: http://choix.lum.li/en/latest/?badge=latest
Raw data
{
"_id": null,
"home_page": "https://github.com/lucasmaystre/choix",
"name": "choix",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "statistics ml bradley terry plackett luce choice comparison ranking",
"author": "Lucas Maystre",
"author_email": "lucas@maystre.ch",
"download_url": "https://files.pythonhosted.org/packages/78/7d/7c167af8bcecb10d931172506f169c0425e23fb1961165fc7a94e7d15ff4/choix-0.3.6.tar.gz",
"platform": null,
"description": "choix\n=====\n\n|build-status| |coverage| |docs|\n\n``choix`` is a Python library that provides inference algorithms for models\nbased on Luce's choice axiom. These probabilistic models can be used to explain\nand predict outcomes of comparisons between items.\n\n- **Pairwise comparisons**: when the data consists of comparisons between two\n items, the model variant is usually referred to as the *Bradley-Terry* model.\n It is closely related to the Elo rating system used to rank chess players.\n- **Partial rankings**: when the data consists of rankings over (a subset of)\n the items, the model variant is usually referred to as the *Plackett-Luce*\n model.\n- **Top-1 lists**: another variation of the model arises when the data consists\n of discrete choices, i.e., we observe the selection of one item out of a\n subset of items.\n- **Choices in a network**: when the data consists of counts of the number of\n visits to each node in a network, the model is known as the *Network Choice\n Model*.\n\n``choix`` makes it easy to infer model parameters from these different types of\ndata, using a variety of algorithms:\n\n- Luce Spectral Ranking\n- Minorization-Maximization\n- Rank Centrality\n- Approximate Bayesian inference with expectation propagation\n\nGetting started\n---------------\n\nTo install the latest release directly from PyPI, simply type::\n\n pip install choix\n\nTo get started, you might want to explore one of these notebooks:\n\n- `Introduction using pairwise-comparison data\n <https://github.com/lucasmaystre/choix/blob/master/notebooks/intro-pairwise.ipynb>`_\n- `Case study: analyzing the GIFGIF dataset\n <https://github.com/lucasmaystre/choix/blob/master/notebooks/gifgif-dataset.ipynb>`_\n- `Using ChoiceRank to understand traffic on a network\n <https://github.com/lucasmaystre/choix/blob/master/notebooks/choicerank-tutorial.ipynb>`_\n- `Approximate Bayesian inference using EP\n <https://github.com/lucasmaystre/choix/blob/master/notebooks/ep-example.ipynb>`_\n\nYou can also find more information on the `official documentation\n<http://choix.lum.li/en/latest/>`_. In particular, the `API reference\n<http://choix.lum.li/en/latest/api.html>`_ contains a good summary of the\nlibrary's features.\n\nReferences\n----------\n\n- Hossein Azari Soufiani, William Z. Chen, David C. Parkes, and Lirong Xia,\n `Generalized Method-of-Moments for Rank Aggregation`_, NIPS 2013\n- Fran\u00e7ois Caron and Arnaud Doucet. `Efficient Bayesian Inference for\n Generalized Bradley-Terry models`_. Journal of Computational and Graphical\n Statistics, 21(1):174-196, 2012.\n- Wei Chu and Zoubin Ghahramani, `Extensions of Gaussian processes for ranking\\:\n semi-supervised and active learning`_, NIPS 2005 Workshop on Learning to\n Rank.\n- David R. Hunter. `MM algorithms for generalized Bradley-Terry models`_, The\n Annals of Statistics 32(1):384-406, 2004.\n- Ravi Kumar, Andrew Tomkins, Sergei Vassilvitskii and Erik Vee, `Inverting a\n Steady-State`_, WSDM 2015.\n- Lucas Maystre and Matthias Grossglauser, `Fast and Accurate Inference of\n Plackett-Luce Models`_, NIPS, 2015.\n- Lucas Maystre and M. Grossglauser, `ChoiceRank\\: Identifying Preferences from\n Node Traffic in Networks`_, ICML 2017.\n- Sahand Negahban, Sewoong Oh, and Devavrat Shah, `Iterative Ranking from\n Pair-wise Comparison`_, NIPS 2012.\n\n\n.. _Generalized Method-of-Moments for Rank Aggregation:\n https://papers.nips.cc/paper/4997-generalized-method-of-moments-for-rank-aggregation.pdf\n\n.. _Efficient Bayesian Inference for Generalized Bradley-Terry models:\n https://hal.inria.fr/inria-00533638/document\n\n.. _Extensions of Gaussian processes for ranking\\: semi-supervised and active learning:\n http://www.gatsby.ucl.ac.uk/~chuwei/paper/gprl.pdf\n\n.. _MM algorithms for generalized Bradley-Terry models:\n http://sites.stat.psu.edu/~dhunter/papers/bt.pdf\n\n.. _Inverting a Steady-State:\n http://theory.stanford.edu/~sergei/papers/wsdm15-cset.pdf\n\n.. _Fast and Accurate Inference of Plackett-Luce Models:\n https://infoscience.epfl.ch/record/213486/files/fastinference.pdf\n\n.. _ChoiceRank\\: Identifying Preferences from Node Traffic in Networks:\n https://infoscience.epfl.ch/record/229164/files/choicerank.pdf\n\n.. _Iterative Ranking from Pair-wise Comparison:\n https://papers.nips.cc/paper/4701-iterative-ranking-from-pair-wise-comparisons.pdf\n\n.. |build-status| image:: https://api.travis-ci.com/lucasmaystre/choix.svg?branch=master\n :alt: build status\n :target: https://app.travis-ci.com/github/lucasmaystre/choix\n\n.. |coverage| image:: https://codecov.io/gh/lucasmaystre/choix/branch/master/graph/badge.svg\n :alt: code coverage\n :target: https://codecov.io/gh/lucasmaystre/choix\n\n.. |docs| image:: https://readthedocs.org/projects/choix/badge/?version=latest\n :alt: documentation status\n :target: http://choix.lum.li/en/latest/?badge=latest\n",
"bugtrack_url": null,
"license": "MIT",
"summary": "Inference algorithms for models based on Luce's choice axiom.",
"version": "0.3.6",
"project_urls": {
"Homepage": "https://github.com/lucasmaystre/choix"
},
"split_keywords": [
"statistics",
"ml",
"bradley",
"terry",
"plackett",
"luce",
"choice",
"comparison",
"ranking"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "8740bc37a13e12f9cd3d9d07727b370401075ef919e0676db362f87fca98463f",
"md5": "61e330b432202e16576e353e65c76e05",
"sha256": "c6efa5059540816e01d36977b5e49096fae5fdb7438b6cf3b91a54a781fb53a7"
},
"downloads": -1,
"filename": "choix-0.3.6-py3-none-any.whl",
"has_sig": false,
"md5_digest": "61e330b432202e16576e353e65c76e05",
"packagetype": "bdist_wheel",
"python_version": "py3",
"requires_python": null,
"size": 18675,
"upload_time": "2024-12-04T11:18:59",
"upload_time_iso_8601": "2024-12-04T11:18:59.191122Z",
"url": "https://files.pythonhosted.org/packages/87/40/bc37a13e12f9cd3d9d07727b370401075ef919e0676db362f87fca98463f/choix-0.3.6-py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "787d7c167af8bcecb10d931172506f169c0425e23fb1961165fc7a94e7d15ff4",
"md5": "3d23a69658100d3d9649eba753795284",
"sha256": "08d50eef29d0a5a33aedcf6939783144ee141b736e4616ba2e0db835df8c81b2"
},
"downloads": -1,
"filename": "choix-0.3.6.tar.gz",
"has_sig": false,
"md5_digest": "3d23a69658100d3d9649eba753795284",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 72563,
"upload_time": "2024-12-04T11:19:00",
"upload_time_iso_8601": "2024-12-04T11:19:00.748801Z",
"url": "https://files.pythonhosted.org/packages/78/7d/7c167af8bcecb10d931172506f169c0425e23fb1961165fc7a94e7d15ff4/choix-0.3.6.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-12-04 11:19:00",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "lucasmaystre",
"github_project": "choix",
"travis_ci": true,
"coveralls": false,
"github_actions": false,
"lcname": "choix"
}