Skip to main content

Predikon: Sub-Matrix Factorization for Real-Time Vote Prediction

Project description

Predikon

Sub-Matrix Factorization for Real-Time Vote Prediction

Build Status Coverage Status

The predikon library is the Python library for the algorithm proposed in

Immer, A.*, Kristof, V.*, Grossglauser, M., Thiran, P., Sub-Matrix Factorization for Real-Time Vote Prediction, KDD 2020

The predikon algorithm enables you to predict aggregate vote outcomes (e.g., national) from partial outcomes (e.g., regional) that are revealed sequentially. See the usage documentation more details on how to use this library or read the paper linked above for more details on how the algorithm works.

It is the algorithm powering predikon.ch, a platform for real-time vote prediction in Switzerland.

Installation

To install the Predikon library from PyPI, run

pip install predikon

Getting Started

Given a dataset Y of historical vote results collected in an array of R regions and V votes, given a vector y of partial results, and given an optional weighting w per region (e.g., the number of valid votes in each region), it is easy to predict the unobserved entries of y after observing at least one regional result (one entry of y) of an ongoing referendum or election:

from predikon import LogisticSubSVD
model = LogisticSubSVD(Y, w)
pred = model.fit_predict(y)
# All unobserved entries in `y` are now filled in.

You can then obtain a prediction for the aggregate outcome (assuming the weights are the number of valid votes in this example) as:

N = w.sum()  # Total number of votes.
ypred = pred.dot(w) / N
ytrue = y.dot(w) / N
print(abs(ypred - ytrue))

Have a look at the example notebook for a complete example of how to use the predikon library (with Swiss referenda).

Going Further

You can find further information in:

And don't hesitate to reach out us if you have questions or to open issues!

Requirements

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Files for predikon, version 0.2
Filename, size File type Python version Upload date Hashes
Filename, size predikon-0.2-py3-none-any.whl (8.3 kB) File type Wheel Python version py3 Upload date Hashes View
Filename, size predikon-0.2.tar.gz (7.9 kB) File type Source Python version None Upload date Hashes View

Supported by

Pingdom Pingdom Monitoring Google Google Object Storage and Download Analytics Sentry Sentry Error logging AWS AWS Cloud computing DataDog DataDog Monitoring Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page