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 PyPI Downloads

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

Alexander Immer*, Victor Kristof*, Matthias Grossglauser, Patrick Thiran, 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.

Source Distribution

predikon-0.4.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

predikon-0.4-py3-none-any.whl (8.6 kB view details)

Uploaded Python 3

File details

Details for the file predikon-0.4.tar.gz.

File metadata

  • Download URL: predikon-0.4.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for predikon-0.4.tar.gz
Algorithm Hash digest
SHA256 a20194a3078894c2ded94668dab3812434b72eafd3d8c15fee4c983f5d5ead55
MD5 eb16936b400a64ca5823e6665311dd37
BLAKE2b-256 acf0b6dd36f28b47dadf88bef71732fc51a9ace40b76bc585598b60aa91dce92

See more details on using hashes here.

File details

Details for the file predikon-0.4-py3-none-any.whl.

File metadata

  • Download URL: predikon-0.4-py3-none-any.whl
  • Upload date:
  • Size: 8.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.3.0 pkginfo/1.7.0 requests/2.25.1 setuptools/49.2.1 requests-toolbelt/0.9.1 tqdm/4.59.0 CPython/3.9.2

File hashes

Hashes for predikon-0.4-py3-none-any.whl
Algorithm Hash digest
SHA256 7733a832a731f2ed071c40609419b79eeca553598119a61e857bf7577b7c9e36
MD5 c08519c6acc36390cf98ae864e1d3d8e
BLAKE2b-256 a55d6be4b826316284b509e48abd65ebd3cc3ab009a08d0fa3436cc9497d576d

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page