Skip to main content

Project Logo

PyPI version Docs Python versions License

SafetyCage is a Python package for detecting misclassified predictions from machine learning models in classification tasks. It provides a unified interface for multiple statistical detection methods, enabling users to quantify prediction reliability and flag potentially incorrect outputs across different models and datasets easily.

Available on PyPI: https://pypi.org/project/safetycage/.

Full documentation is available at https://safetycage.readthedocs.io/.

Background

The idea behind safetycage is that we can find statistics on each predicted sample and compare that statistic to some statistic threshold to predict whether the sample prediction was incorrectly classified.

Description

Machine learning models can produce incorrect predictions with high confidence. SafetyCage addresses this by providing post-hoc misclassification detection methods that operate on model outputs or internal representations.

The package includes several methods:

  • MSP (Maximum Softmax Probability)
  • DOCTOR (Error probability estimation)
  • Mahalanobis (Distance-based statistical testing)
  • SPARDACUS (Projection + density estimation approach)

Each method outputs a statistic or p-value that reflects how likely a prediction is to be incorrect.

Alternatively, you can implement your own method by initializing a base class from the safetycage abstract base class, which defines how methods should be implemented.

Requirements

safetycage requires Python 3.13 or later.

Core dependencies (installed automatically): joblib, matplotlib, numpy.

Installation

pip install safetycage
# or: uv add safetycage

Some methods need extra dependencies, installed via pip install safetycage[extra] (or uv add "safetycage[extra]"):

Extra Uses Adds
red RED torch, gpytorch
spardacus SPARDACUS statsmodels, scipy, scikit-learn, tqdm
mahalanobis Mahalanobis statsmodels, scipy
torch TorchModelModule torch

Tutorials & Examples

To learn how to use safetycage, check out the examples/ directory in this repository. It contains complete integrations with runnable notebooks, including scripts to train models to test the safetycage methods on.

Changelog

See the CHANGELOG.MD for details on versioning.

Support

If you encounter issues or have questions:

Contributing

If you would like to contribute, please reach out to our safetycage team, listed below!

Authors

Acknowledgment

The MSP method was introduced by Hendrycks and Gimpel in A Baseline for Detecting Misclassified and Out-of-Distribution Examples in Neural Networks.

The DOCTOR method was introduced by Granese et al. in DOCTOR: A Simple Method for Detecting Misclassification Errors.

The Mahalanobis method is described in Johnsen et al..

The SPARDACUS method is described in Johnsen et al..

A proper citation for these methods is provided in the docstring of the code using these methods.

A special thank you goes to previous co-authors of the methods we have built, Filippo Remonato, Shawn Benedict, and Albert Ndur-Osei.

License

This project is licensed under the MIT License - see the LICENSE file for details.

Project status

Active and under development!

Citation

If you use safetycage, please cite us!

Download files

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

Source Distribution

safetycage-0.0.62.tar.gz (35.8 kB view details)

Uploaded Source

Built Distribution

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

safetycage-0.0.62-py3-none-any.whl (44.2 kB view details)

Uploaded Python 3

File details

Details for the file safetycage-0.0.62.tar.gz.

File metadata

  • Download URL: safetycage-0.0.62.tar.gz
  • Upload date:
  • Size: 35.8 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.7.14

File hashes

Hashes for safetycage-0.0.62.tar.gz
Algorithm Hash digest
SHA256 74ae4deb16293d0b828dcf7974d49165d54b5522a894f9830b67260243b721af
MD5 d6d79afe0cf5670a8752502b0e70d86f
BLAKE2b-256 225c84dda9616c890ae9bb95b2a5d4bfcdcda84a55223a74c1098e60cc4e041c

See more details on using hashes here.

File details

Details for the file safetycage-0.0.62-py3-none-any.whl.

File metadata

File hashes

Hashes for safetycage-0.0.62-py3-none-any.whl
Algorithm Hash digest
SHA256 65ac9b4fcc9f9b1168889844e347895033684c21b21c7931d90f406e69b67831
MD5 4fd2f7c0a4ee77ed484c2abb739fd074
BLAKE2b-256 dd22b76eff6980f74fa1c94dd8eefec2437c9410929e61647fb4f1ed646c29ab

See more details on using hashes here.

Release history Release notifications | RSS feed

0.0.63

2 files

This release

0.0.62 This release

2 files

0.0.61

2 files

0.0.60

2 files

0.0.59

2 files

0.0.58

2 files

0.0.57

2 files

0.0.56

2 files

0.0.55

2 files

0.0.6

2 files

0.0.5

2 files

0.0.4

2 files

0.0.3

2 files

0.0.2

2 files

0.0.1

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page