This release is a pre-release and may not be stable for production use.
ChoiceModels
ChoiceModels is a Python library for discrete choice modeling, with utilities for sampling, simulation, and other ancillary tasks. It's part of the Urban Data Science Toolkit (UDST).
Project scope
Status: Active
Mission: ChoiceModels provides reusable tools for specifying, estimating, sampling, and simulating discrete-choice models within larger analytical workflows.
Architecture: ChoiceModels provides portable Python implementations and interfaces for discrete-choice workflows and conventional estimation. Its reference implementations target conventional CPU-based execution, while estimator interfaces allow alternative execution engines to interoperate with the library.
The project maintains and develops:
- construction and manipulation of choice tables;
- sampling of alternatives;
- discrete-choice model specifications and interfaces;
- conventional model estimation and estimator integrations;
- Monte Carlo choice simulation;
- capacity-constrained choice algorithms; and
- interoperable representations of estimated choice models.
ChoiceModels is designed as a general-purpose discrete-choice library and as an integration layer between model specifications, estimation engines, and simulation workflows.
Development of choice-model methods and estimator integrations is welcome within this mission and architecture. Material changes to the project's mission or execution architecture are considered through UDST's organization-level governance process.
See the UDST Project Directory for organization-wide project status and policy.
Features
The library focuses mainly on tools to help integrate discrete choice models into larger workflows.
ChoiceModels can automate the creation of choice tables for estimation or simulation, using uniform or weighted random sampling of alternatives, as well as interaction terms or cartesian merges.
It also provides general-purpose tools for Monte Carlo simulation of choices given probability distributions from fitted models, with fast algorithms for independent or capacity-constrained choices.
ChoiceModels includes a custom engine for Multinomial Logit estimation that's optimized for fast performance with large numbers of alternatives, as well as a flexible MNL implementation compatible with PyLogit model specifications.
Installation
ChoiceModels requires Python 3.10 or later, and can be installed using the Pip or Conda package managers:
pip install choicemodels
conda install choicemodels --channel conda-forge
Documentation
See the online documentation for much more: https://udst.github.io/choicemodels
Some additional documentation is available within the repo in CHANGELOG.md, CONTRIBUTING.md, /docs/README.md, and /tests/README.md.
There's discussion of current and planned features in the Pull requests and Issues, both open and closed.
Metadata
Release files for choicemodels 0.3rc1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| choicemodels-0.3rc1.tar.gz | 97.3 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| choicemodels-0.3rc1-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 132.7 kB
Release files / choicemodels-0.3rc1.tar.gz
| Download URL | choicemodels-0.3rc1.tar.gz |
|---|---|
| Size | 97.3 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
560e943285a1bd61439b47e13b1eb773c09fe5fac65388f2a84401c35c83b69b
|
|
BLAKE2b-256 checksum How to use checksums |
344e657f9aaffe0f803ff40eae4a383fbdf389e81bbdc3f4fca9e5f54507c873
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency logRelease files / choicemodels-0.3rc1-py3-none-any.whl
| Download URL | choicemodels-0.3rc1-py3-none-any.whl |
|---|---|
| Size | 35.4 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
41669c072c5aeae1fd8db09ced68d6d76025654eaa1b910950fce81eb1566d51
|
|
BLAKE2b-256 checksum How to use checksums |
5774037e47cf865c4b1af78ab1e06290a47222632eed29d3c735bcfb5d852069
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 11, 2026.
Transparency log