Skip to main content

Distribution-free simultaneous confidence bands for ROC curves

Project description

rocci

PyPI Python versions conda-forge CI Merge gates coverage Docs License

Distribution-free simultaneous confidence bands for ROC curves.

rocci envelope band vs Working-Hotelling band on heavy-tailed scores

rocci is a simple interface to easily add uncertainty estimates to your ROC curve that are very likely to be correct in nearly all use cases. It draws a simultaneous confidence band, which maintains the specified confidence of capturing the entire true (population) ROC.

rocci is designed to:

  • just work. It should do the right thing off the shelf for nearly any data set.
  • drop in to your workflow. It natively integrates with sklearn, torch, statsmodels, PyMC/arviz, and pandas/polars data.
  • be fast. Core operations are implemented in rust for speed (invisible to the user).
  • have a lightweight footprint. Minimal runtime dependencies (just numpy and scipy).
  • support an open ecosystem. Permissive MIT license, easy extensibility.

By default, rocci uses a distribution-free method that provides informative bands without burdensome assumptions about the data. It maintains nominal coverage in a huge variety of contexts and the rare violations tend to be small misses. If you are comfortable adding a normality assumption to get tighter bands, rocci yields a "Working-Hotelling" band, but also carefully checks the normality assumption and warns you when it looks dicey.

Installation

pip install rocci            # prebuilt wheels — no Rust toolchain needed
pip install 'rocci[plot]'    # + matplotlib for band.plot() and diagnostics
uv add rocci                 # in uv-managed projects

Wheels cover Linux (glibc x86-64/aarch64 and musl), macOS (Intel and Apple silicon), and Windows, for every Python ≥ 3.10; runtime dependencies are numpy and scipy only. On any other platform pip falls back to the sdist (requires a Rust toolchain), and if no compiled kernel is present at runtime a pure-NumPy backend with identical statistical semantics takes over automatically. A conda-forge package (conda install -c conda-forge rocci) follows the first PyPI release. Details: installation guide.

Quickstart

from rocci import roc_band

band = roc_band(y_true, y_score)
band.plot()
print(band.summary())

Docs: https://ndelaneybusch.github.io/rocci · Changelog: CHANGELOG.md · Contributing (including the release process): CONTRIBUTING.md

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

rocci-0.1.0.tar.gz (44.7 kB view details)

Uploaded Source

Built Distributions

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

rocci-0.1.0-cp310-abi3-win_amd64.whl (230.9 kB view details)

Uploaded CPython 3.10+Windows x86-64

rocci-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl (583.1 kB view details)

Uploaded CPython 3.10+musllinux: musl 1.2+ x86-64

rocci-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (370.5 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ x86-64

rocci-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (371.1 kB view details)

Uploaded CPython 3.10+manylinux: glibc 2.17+ ARM64

rocci-0.1.0-cp310-abi3-macosx_11_0_arm64.whl (331.5 kB view details)

Uploaded CPython 3.10+macOS 11.0+ ARM64

rocci-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl (334.6 kB view details)

Uploaded CPython 3.10+macOS 10.12+ x86-64

File details

Details for the file rocci-0.1.0.tar.gz.

File metadata

  • Download URL: rocci-0.1.0.tar.gz
  • Upload date:
  • Size: 44.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rocci-0.1.0.tar.gz
Algorithm Hash digest
SHA256 a02e62cd82f6deefb383e100b978f6a0dba3452d72b777a5e293be129860dc80
MD5 23e7298f010991a0245fe3e0a4429f5d
BLAKE2b-256 ea3c9a9c05a28a5a7f76511b4a213d63987005c5c384931f319a9be039d7c377

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocci-0.1.0.tar.gz:

Publisher: wheels.yml on ndelaneybusch/rocci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rocci-0.1.0-cp310-abi3-win_amd64.whl.

File metadata

  • Download URL: rocci-0.1.0-cp310-abi3-win_amd64.whl
  • Upload date:
  • Size: 230.9 kB
  • Tags: CPython 3.10+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rocci-0.1.0-cp310-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0c76d52abd30470eef974882f5f0b99172260f7247b17d6950c6f660b60fd70c
MD5 4b01698471620d28c0b98affca72d4ac
BLAKE2b-256 46af67b6f780c96e360cf9e8ee8e9a351f3dd07347658276a032f02edd49e06d

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocci-0.1.0-cp310-abi3-win_amd64.whl:

Publisher: wheels.yml on ndelaneybusch/rocci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rocci-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for rocci-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 8b098f9c41e1e3aba4585fdb40ad29e71f938da95c9942e4cb0db8d6d8aae881
MD5 cffe68a56e72708382813d53e9626b92
BLAKE2b-256 aef9e5d1e1144b53f72e6e72837faba5c5a2bd605dfc08637be47ea68cc167cf

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocci-0.1.0-cp310-abi3-musllinux_1_2_x86_64.whl:

Publisher: wheels.yml on ndelaneybusch/rocci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rocci-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for rocci-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 ea767bd3a5c9270a44214760e71714821ea3672f81f10face32ed9d0a4628419
MD5 53607ff65458e90eeae55bd220447028
BLAKE2b-256 d634b38af2ac337b99817e4d26bc4fd4028ed552a8137b94cde66e687c51f8c3

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocci-0.1.0-cp310-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl:

Publisher: wheels.yml on ndelaneybusch/rocci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rocci-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for rocci-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 bf4b8ff45056150a57af2e6572eedbefc92807b14f9fbf96f654b1a3e75a003f
MD5 1f4ae8e0163203db63edd50f7a87cc2f
BLAKE2b-256 2568c85cd3ea252a6c215d377b2b6fcbe2ffa185c2981a3ba0024157fd665c91

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocci-0.1.0-cp310-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl:

Publisher: wheels.yml on ndelaneybusch/rocci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rocci-0.1.0-cp310-abi3-macosx_11_0_arm64.whl.

File metadata

  • Download URL: rocci-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
  • Upload date:
  • Size: 331.5 kB
  • Tags: CPython 3.10+, macOS 11.0+ ARM64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for rocci-0.1.0-cp310-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b54316c216560fec8a630c7331d1266f19961cdb2a77f6421073cc4bcf67230f
MD5 43768d4e66a63da206d5ca54137361bc
BLAKE2b-256 a939e3e49014c349cb0e981ef40d9ee147e5af78bb19ed86705db0dd11f23e77

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocci-0.1.0-cp310-abi3-macosx_11_0_arm64.whl:

Publisher: wheels.yml on ndelaneybusch/rocci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file rocci-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl.

File metadata

File hashes

Hashes for rocci-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl
Algorithm Hash digest
SHA256 3dbcbefca594059e4844d35061da4b39e3297337c7b74a357c55e1c7053155ba
MD5 660db76d26faaeb6af136dcb88db6bac
BLAKE2b-256 17eedfe142bb72ed4fb9d193e76c47bfab03eb8d1f15b7ea67a53ce78ec78fc6

See more details on using hashes here.

Provenance

The following attestation bundles were made for rocci-0.1.0-cp310-abi3-macosx_10_12_x86_64.whl:

Publisher: wheels.yml on ndelaneybusch/rocci

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

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