{ "info": { "author": "Lucas Maystre", "author_email": "lucas@maystre.ch", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Intended Audience :: Science/Research", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Scientific/Engineering :: Mathematics" ], "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 `_\n- `Case study: analyzing the GIFGIF dataset\n `_\n- `Using ChoiceRank to understand traffic on a network\n `_\n- `Approximate Bayesian inference using EP\n `_\n\nYou can also find more information on the `official documentation\n`_. In particular, the `API reference\n`_ 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://travis-ci.org/lucasmaystre/choix.svg?branch=master\n :alt: build status\n :scale: 100%\n :target: https://travis-ci.org/lucasmaystre/choix\n\n.. |coverage| image:: https://codecov.io/gh/lucasmaystre/choix/branch/master/graph/badge.svg\n :alt: code coverage\n :scale: 100%\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 :scale: 100%\n :target: http://choix.lum.li/en/latest/?badge=latest", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/lucasmaystre/choix", "keywords": "statistics ml bradley terry plackett luce choice comparison ranking", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "choix", "package_url": "https://pypi.org/project/choix/", "platform": "", "project_url": "https://pypi.org/project/choix/", "project_urls": { "Homepage": "https://github.com/lucasmaystre/choix" }, "release_url": "https://pypi.org/project/choix/0.3.3/", "requires_dist": null, "requires_python": "", "summary": "Inference algorithms for models based on Luce's choice axiom.", "version": "0.3.3" }, "last_serial": 5495127, "releases": { "0.1.0": [ { "comment_text": "", "digests": { "md5": "fec575705e14f85be64741b0c122e8fb", "sha256": "f169cb74ea1ee7704da7f60449fe57600b51d2c6ca9a09bc9b11da6097c0a210" }, "downloads": -1, "filename": "choix-0.1.0-py3-none-any.whl", "has_sig": false, "md5_digest": "fec575705e14f85be64741b0c122e8fb", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 15914, "upload_time": "2016-12-14T09:32:51", "url": "https://files.pythonhosted.org/packages/4e/8e/78ef36f2f06fa1d43755a75c59b2e9d2b9ea897546748128781cee67be53/choix-0.1.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "02747fef25f57e6dde9b276248f8d359", "sha256": "952fc8d7d6c3bf8d19adc87e1b6efdaf210ef4f184f2707f43acf666dea9fda2" }, "downloads": -1, "filename": "choix-0.1.0.tar.gz", "has_sig": false, "md5_digest": "02747fef25f57e6dde9b276248f8d359", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13512, "upload_time": "2016-12-14T09:32:54", "url": "https://files.pythonhosted.org/packages/10/4a/261e5d0379b6449d59eb6990442e790a00926ccf90249a13c3fad8df9adb/choix-0.1.0.tar.gz" } ], "0.1.0.dev2": [ { "comment_text": "", "digests": { "md5": "4b5703270a38e8a779b81292748652c7", "sha256": "c3051e50c68d44de7976be76df6384da9fb0c3d715b105519233fafe21f1f673" }, "downloads": -1, "filename": "choix-0.1.0.dev2-py3-none-any.whl", "has_sig": false, "md5_digest": "4b5703270a38e8a779b81292748652c7", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10010, "upload_time": "2016-11-29T15:52:27", "url": "https://files.pythonhosted.org/packages/aa/18/2cec25fc18952cd1db16af612a12e7f0bb76642d71a36125ade2bda1b52d/choix-0.1.0.dev2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6cc2ee0fc288b2c89f7061e84bd21c32", "sha256": "ec6fb059e6664861361836169f83698205f158677376a59ef8f333b3c8159e91" }, "downloads": -1, "filename": "choix-0.1.0.dev2.tar.gz", "has_sig": false, "md5_digest": "6cc2ee0fc288b2c89f7061e84bd21c32", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9498, "upload_time": "2016-11-29T15:52:29", "url": "https://files.pythonhosted.org/packages/87/f6/9a058c673d20372616418b1b3493c1afb68f28fbe4a83777a36fed02b3c7/choix-0.1.0.dev2.tar.gz" } ], "0.1.0.dev3": [ { "comment_text": "", "digests": { "md5": "8e5c4f902e6b41414d13abc26299b407", "sha256": "31b26fe64016acc17f1e9dccc4c94143463c7f744ed9e214ad4236d7d03e6b17" }, "downloads": -1, "filename": "choix-0.1.0.dev3-py3-none-any.whl", "has_sig": false, "md5_digest": "8e5c4f902e6b41414d13abc26299b407", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 10858, "upload_time": "2016-11-29T16:27:42", "url": "https://files.pythonhosted.org/packages/2b/ab/4c6c007e6db15340a4007a4a339a94d09619891b7e296cfb999cf3a53d9d/choix-0.1.0.dev3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0a33568cfd135f6118f988ee69cfc629", "sha256": "0c721dcaf7ea3cc007b8a69218f70d2f9f49f634d936d5fa7d3c5c7d5f29c9b0" }, "downloads": -1, "filename": "choix-0.1.0.dev3.tar.gz", "has_sig": false, "md5_digest": "0a33568cfd135f6118f988ee69cfc629", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 10104, "upload_time": "2016-11-29T16:27:45", "url": "https://files.pythonhosted.org/packages/4b/65/a82c1a4020887ed0bc450b85b72b9fd61a9a3384e9a6c007b0404700386e/choix-0.1.0.dev3.tar.gz" } ], "0.2.0": [ { "comment_text": "", "digests": { "md5": "2b83efe0d6c54a1182f44ac70cc408e9", "sha256": "f742fd5504cf2dd85549db48bcaee1a64949bdfb8a29df5c4d4324eaef5da4af" }, "downloads": -1, "filename": "choix-0.2.0-py3-none-any.whl", "has_sig": false, "md5_digest": "2b83efe0d6c54a1182f44ac70cc408e9", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 19413, "upload_time": "2017-07-06T12:53:58", "url": "https://files.pythonhosted.org/packages/1d/dc/05301643dd8fa7f556efb2ab5c119a72d1133de3eac52fb011ed1e5de3af/choix-0.2.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "5ba218cde1fd36e6a72962f0a9c573aa", "sha256": "fe1c49afbdd18f21223045e06bdea88dd852f22385cf5d641f0a830393466f34" }, "downloads": -1, "filename": "choix-0.2.0.tar.gz", "has_sig": false, "md5_digest": "5ba218cde1fd36e6a72962f0a9c573aa", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 16333, "upload_time": "2017-07-06T12:54:00", "url": "https://files.pythonhosted.org/packages/53/73/50fdb25bef74a4528a4a932c129683412c01409a961265a6e0abd4f619de/choix-0.2.0.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "26efb0efe89ce67d18ea2a00b21a15fd", "sha256": "6e92ff79711281a2fd52c455a7a4372a5c5f19420a29ea7706ee843960260e17" }, "downloads": -1, "filename": "choix-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "26efb0efe89ce67d18ea2a00b21a15fd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 20688, "upload_time": "2017-11-14T09:09:16", "url": "https://files.pythonhosted.org/packages/64/e3/7371acd3cb394c77f30009ba9c9a2cbd2b2d1ec586938334c18dc1572e18/choix-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "85f678bb65bf1e41b516ff1734751f08", "sha256": "641e865cc276ee5dd65a11cdc9da432c31d22670c4507cbe8dad4920bac8ccf7" }, "downloads": -1, "filename": "choix-0.3.0.tar.gz", "has_sig": false, "md5_digest": "85f678bb65bf1e41b516ff1734751f08", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63012, "upload_time": "2017-11-14T09:09:17", "url": "https://files.pythonhosted.org/packages/c2/f7/9edb2b12579a570497998762dd4f30affc7bb972d8f3c68f405e8b2eb0df/choix-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "3d0002364a2f68d28dca1352dc02eaf5", "sha256": "77e51e90fff9619359e6fb85d15fdcf4a23310060c3f47407eefc03b25d7714d" }, "downloads": -1, "filename": "choix-0.3.1.tar.gz", "has_sig": false, "md5_digest": "3d0002364a2f68d28dca1352dc02eaf5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63253, "upload_time": "2018-01-15T12:22:35", "url": "https://files.pythonhosted.org/packages/ef/43/b5d13204a15a620bc2c11094dc715932967dd2e2a47bef9acfb93ec74cd2/choix-0.3.1.tar.gz" } ], "0.3.2": [ { "comment_text": "", "digests": { "md5": "23f93f7ee60ea54ae2614923c6ccaaee", "sha256": "c7fb20c47ecd5f79f8a1320c48ec15d781171f0f64c0bd9df56f743354a185db" }, "downloads": -1, "filename": "choix-0.3.2.tar.gz", "has_sig": false, "md5_digest": "23f93f7ee60ea54ae2614923c6ccaaee", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63357, "upload_time": "2018-08-08T09:06:35", "url": "https://files.pythonhosted.org/packages/b8/81/6059cdebadbc69df492e2e3090d0cb7fd197f94e7c5dd60f0fa26d5e2c4e/choix-0.3.2.tar.gz" } ], "0.3.3": [ { "comment_text": "", "digests": { "md5": "c407cf83a7e2729d97a3039f63d71490", "sha256": "799b62726ac1ace87c9be50df9a07658494316cecdf45b35d8acea016b2400e9" }, "downloads": -1, "filename": "choix-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c407cf83a7e2729d97a3039f63d71490", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63956, "upload_time": "2019-07-06T16:28:14", "url": "https://files.pythonhosted.org/packages/f4/8f/bcb56e1fb48c390e92b17794042425a77eaa4471f4a58009600ae144deeb/choix-0.3.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "c407cf83a7e2729d97a3039f63d71490", "sha256": "799b62726ac1ace87c9be50df9a07658494316cecdf45b35d8acea016b2400e9" }, "downloads": -1, "filename": "choix-0.3.3.tar.gz", "has_sig": false, "md5_digest": "c407cf83a7e2729d97a3039f63d71490", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 63956, "upload_time": "2019-07-06T16:28:14", "url": "https://files.pythonhosted.org/packages/f4/8f/bcb56e1fb48c390e92b17794042425a77eaa4471f4a58009600ae144deeb/choix-0.3.3.tar.gz" } ] }