Skip to content
Go to file

Latest commit


Git stats


Failed to load latest commit information.
Latest commit message
Commit time

Build Status Coverage Status Docs Status


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).


The library currently focuses on tools to help integrate discrete choice models into larger workflows, drawing on other packages such as the excellent PyLogit for most estimation of models.

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.


ChoiceModels can be installed using the Pip or Conda package managers:

pip install choicemodels
conda install choicemodels --channel conda-forge


See the online documentation for much more:

Some additional documentation is available within the repo in,, /docs/, and /tests/

There's discussion of current and planned features in the Pull requests and Issues, both open and closed.