Skip to main content

An implementation of online conformal prediction

Project description

online-cp -- Online Conformal Prediction

This project is an implementation of Online Conformal Prediction.

For now, take a look at example.ipynb to see how to use the library.

Quick start

The online-cp package is available on PyPI, to install just:

pip install online-cp

Let's create a dataset with noisy evaluations of the function $f(x_1, x_2) = x_1 + x_2$.

import numpy as np
N = 30
X = np.random.uniform(0, 1, (N, 2))
y = X.sum(axis=1) + np.random.normal(0, 0.1, N)
cp.learn_initial_training_set(X, y)

Import the library and create a regressor:

from online_cp import ConformalRidgeRegressor
cp = ConformalRidgeRegressor()

To predict, simply do

cp.predict(X[0], epsilon=0.1)
(-inf, inf)

The output is non-informative since we have not learned anything yet. The parameter epsilon is the significance level.

Alternative 1: Learn the dataset sequentially online, and make predictions as we go. In order to output nontrivial prediction at significance level epsilon=0.1, we need to have learned at least 20 examples.

for x, y in zip(X[-1], Y[-1]):
    print(f'Prediction set: {cp.predict(x, epsilon=0.1)}')
    cp.learn_one(x, y)

In the online setting, we first observe the object $x$, which is used to make a prediction, only then to observe the label $y$. The output will be (inf, inf) for the first 19 predictions, after which we will typically see meaningful prediction sets. The snippet above learned all but the last example. To predict it, do (your output may not be exactly the same, as the dataset depends on the random seed).

cp.predict(X[-1], epsilon=0.1)
(0.029643344144500712, 0.34909922671253196)

The prediction set is the closed interval whose boundaries are indicated by the output.

Alternative 2: Learn an initial training set offline, and predict e.g. only the last example

cp = ConformalRidgeRegressor()
cp.learn_initial_training_set(X[:-1], Y[:-1])
cp.predict(X[-1], epsilon=0.1)
(0.8748194061248175, 1.3357383729107446)

Furhter examples can be found in the notebooks, e.g. example.ipynb. Current functionality includes

  • Conformal regression
  • Conformal classification
  • Testing exchangeability through conformal test martignales

References

The main reference for Conformal Prediction is the book

Vladimir Vovk, Alexander Gammerman, and Glenn Shafer. Algorithmic Learning in a Random World (2nd ed). Springer Nature, 2022.

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

online_cp-0.0.8.tar.gz (30.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

online_cp-0.0.8-py3-none-any.whl (32.2 kB view details)

Uploaded Python 3

File details

Details for the file online_cp-0.0.8.tar.gz.

File metadata

  • Download URL: online_cp-0.0.8.tar.gz
  • Upload date:
  • Size: 30.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for online_cp-0.0.8.tar.gz
Algorithm Hash digest
SHA256 627c8b8f0896837e8727add69fc457fd73576c691aa822124d5cf1becdf7637c
MD5 a7e1dcb26517f37ea77f1df2a2b492a4
BLAKE2b-256 92c8bf7f24d046bac99276e4a4cd3828ed8dcb28cdac1d8c072b55b4520b5f1d

See more details on using hashes here.

File details

Details for the file online_cp-0.0.8-py3-none-any.whl.

File metadata

  • Download URL: online_cp-0.0.8-py3-none-any.whl
  • Upload date:
  • Size: 32.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.11.11

File hashes

Hashes for online_cp-0.0.8-py3-none-any.whl
Algorithm Hash digest
SHA256 19de5b0b58bd0d703e5cedab1bcb91e7257a7d7f83c65d72fc0733a1428adf01
MD5 69d8df863ce3464ee3a1af5d9d6c09c8
BLAKE2b-256 0901ff2c1d608a2c5c011cfe1c434dc587e7b154bcb84acdef77bffef4ddc637

See more details on using hashes here.

Supported by

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