Skip to main content

Equal Error Rate

The Equal Error Rate is an overall performance metric for a binary classifier. It is insensitive to

  • evaluation priors, so the metric doesn't change if the relative amounts of data points in the two classes varies
  • calibration, so the classifier only needs to produce consistent scores, and not set a threshold

This package is a thin wrapper around llreval, which computes the equal error rate in the ROC convex hull interpretation, which is consistent and meaningful, see Niko Brümmer's PhD thesis.

Installation

pip install wer

Usage

Collect your classifier's (floating point) scores in a numpy array. Prepare a parallel array with values 0 for the class related to lower scores, and 1 for the class related to higher scores. Then call eer.eer(scores, labels).

Example:

Simulate calibrated scores for a binary classifier, and compute the equal error rate.

import numpy as np
from eer import eer, eer_tnt

ntar, nnon = 100_000, 1_000_000
targets = 2 + 2 * np.random.randn(ntar)
non_targets = -2 + 2 * np.random.randn(nnon)
print("EER using target and non-target scores:", eer_tnt(targets, non_targets))

scores = np.concatenate([targets, non_targets])
labels = np.concatenate([np.ones(targets.shape[0]), np.zeros(non_targets.shape[0])])
print("EER using scores and labels:", eer(scores, labels))

The values printed should not be too far from 0.5 + 0.5erf(-1/√2) ≈ 0.1586552.

Release files for eer 0.0.2

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for eer 0.0.2
File Size Uploaded
eer-0.0.2.tar.gz 3.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for eer 0.0.2
File Interpreter ABI Platform
eer-0.0.2-py3-none-any.whl Python 3 none any Details

Total release size: 8.4 kB

Release files / eer-0.0.2.tar.gz

Download URL eer-0.0.2.tar.gz
Size 3.8 kB
Tags Source
SHA-256 checksum
How to use checksums
d19ca668603909aed0ba89304518c30ff85c9b86686d9a2e1cd4366434f31388
BLAKE2b-256 checksum
How to use checksums
6d8ceb40774d5c6fdca45ee11996fdecdeeb28c4246c0690d10286cea387fe84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release files / eer-0.0.2-py3-none-any.whl

Download URL eer-0.0.2-py3-none-any.whl
Size 4.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
1b0dc3bcbeb0a95153d7e4e8e936cdc1e23f9ff8e921a97925a851fd4d440077
BLAKE2b-256 checksum
How to use checksums
d661fe12d61422fa05cd48df81e9602811ae5b120bb8dee168e6e20a7fad5911
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/4.0.2 CPython/3.11.2

Release history Release notifications | RSS feed

This release

0.0.2 This release

2 release 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