A package for optimization solvers
Project description
elex-solver
This packages includes solvers for:
- Ordinary least squares regression
- Quantile regression
- Transition matrices
Installation
- We recommend that you set up a virtualenv and activate it (IE
mkvirtualenv elex-solver
via http://virtualenvwrapper.readthedocs.io/en/latest/). - Run
pip install elex-solver
Ordinary least squares
We have our own implementation of ordinary least squares in Python because this let us optimize it towards the bootstrap by storing and re-using the normal equations. This allows for significant speed up.
Quantile Regression
Since we did not find any implementations of quantile regression in Python that fit our needs, we decided to write one ourselves. At the moment this uses two libraries, the version that solves the non-regularized problem uses numpy
and solves the dual based on this paper. The version that solves the regularized problem uses cvxpy
and sets up the problem as a normal optimization problem. Eventually, we are planning on replacing the regularized version with the dual also.
Transition Matrices
We also have a matrix regression solver built with cvxpy
. We've used this for our primary election model and analysis. The transitions it generates form the transitions displayed in our sankey diagrams.
Development
We welcome contributions to this repo. Please open a Github issue for any issues or comments you have.
Set up a virtual environment and run:
> pip install -r requirements.txt
> pip install -r requirements-dev.txt
Precommit
To run pre-commit for linting, run:
pre-commit run --all-files
Testing
> tox
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
Built Distribution
File details
Details for the file elex_solver-2.1.1.tar.gz
.
File metadata
- Download URL: elex_solver-2.1.1.tar.gz
- Upload date:
- Size: 25.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | 75e8e986905738258136009d068b08a6a965a9bd56a4ae14ae80d7e8bb46a269 |
|
MD5 | 5da91355b4abfc66ae156e088cd4512b |
|
BLAKE2b-256 | 19d8a0ad0127a46b971276d874e2115269b4361340d35ac2df68cc51c8d66652 |
File details
Details for the file elex_solver-2.1.1-py2.py3-none-any.whl
.
File metadata
- Download URL: elex_solver-2.1.1-py2.py3-none-any.whl
- Upload date:
- Size: 10.4 kB
- Tags: Python 2, Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/4.0.2 CPython/3.11.7
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e73afaef8472339c0f1932adf7c4b5af4cca7c6a565ad0a4ad48d745e9f84645 |
|
MD5 | 6ea11b8e736e103c64e331097c90453b |
|
BLAKE2b-256 | 5286fd1b0617e11fd5fd34513fd2e297186a864371fe41af3d6f8068fb8af7c9 |