Skip to main content

Conformal prediction for machine learning classifiers

Project description

Python package

Conformist v1.0.2

Conformist is an implementation of conformal prediction, specifically conformal risk control. It was written using Python 3.8.

BaseCoP contains utility functions common to all conformal predictors, such as splitting data into calibration and validation sets, and setting up runs. It is extended by FNRCoP that implements conformal risk control.

The ValidationRun class contains the data from a single run, which entails shuffling the data randomly, splitting it into calibration and validation datasets, calibrating the conformal predictor on the calibration data and creating prediction sets for the validation data.

The ValidationTrial class contains a list of runs and calculates statistics across these runs.

Input file format

The input to Conformist is a CSV file with the following columns: id, known_class, predicted_class, [proba_columns]

The proba_columns should contain class-specific probability scores and correspond to the names used in the known_class and predicted_class columns.

Example:

id known_class predicted_class ClassA ClassB ClassC
Sample1 ClassB ClassA 0.70 0.25 0.05
Sample2 ClassA ClassA 0.98 0.02 0.0
Sample3 ClassC ClassC 0.01 0.01 0.98

Example implementation

from conformist import FNRCoP, PredictionDataset, ValidationTrial

CALIB_DATA_CSV = 'path/to/calib.csv'
TEST_DATA_CSV = 'path/to/test.csv'
OUTPUT_DIR = 'path/to/output'
ALPHA = 0.05 # Select a reasonable False Negative Rate

# Read in formatted predictions
calpd = PredictionDataset(predictions_csv=CALIB_DATA_CSV,
                          dataset_name='my_cal_data')
testpd = PredictionDataset(predictions_csv=TEST_DATA_CSV,
                           dataset_name='my_test_data')

# Get class counts and prediction heatmap
calpd.run_reports(OUTPUT_DIR)

# Validation trial and reports
mcp = FNRCoP(calpd, alpha=ALPHA)
trial = mcp.do_validation_trial(n_runs=10000)
trial.run_reports(OUTPUT_DIR)

# Recalibrate conformal predictor
mcp = FNRCoP(calpd, alpha=ALPHA)
mcp.calibrate()

# Predict
formatted_predictions = mcp.predict(testpd,
                                    OUTPUT_DIR)

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

conformist-1.0.2.tar.gz (16.0 kB view details)

Uploaded Source

Built Distribution

conformist-1.0.2-py3-none-any.whl (17.9 kB view details)

Uploaded Python 3

File details

Details for the file conformist-1.0.2.tar.gz.

File metadata

  • Download URL: conformist-1.0.2.tar.gz
  • Upload date:
  • Size: 16.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for conformist-1.0.2.tar.gz
Algorithm Hash digest
SHA256 8c997cdc5b83f4772f84c6202befa58b2fc0e0792138128d0ea419a2d47c715e
MD5 54275b2c60164577c298f32939403114
BLAKE2b-256 3594a94a52958cb71d76dce520d8e23fa050695b0e2db98d68b9554c11a02f0a

See more details on using hashes here.

Provenance

The following attestation bundles were made for conformist-1.0.2.tar.gz:

Publisher: python-publish.yml on Molmed/conformist

Attestations:

File details

Details for the file conformist-1.0.2-py3-none-any.whl.

File metadata

  • Download URL: conformist-1.0.2-py3-none-any.whl
  • Upload date:
  • Size: 17.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/5.1.1 CPython/3.12.7

File hashes

Hashes for conformist-1.0.2-py3-none-any.whl
Algorithm Hash digest
SHA256 6610bfb2ae164b6c3f221f16c484f9ed63746eaf37af5f77d0644a31726c1321
MD5 51a7e45abfdb888104a1bb9d05fb6d5e
BLAKE2b-256 f270b696ae6746f0245e269a2ad21b5d31b18fb790d487e30175a2199b17a7bd

See more details on using hashes here.

Provenance

The following attestation bundles were made for conformist-1.0.2-py3-none-any.whl:

Publisher: python-publish.yml on Molmed/conformist

Attestations:

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