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)
| File | Size | Uploaded | |
|---|---|---|---|
| eer-0.0.2.tar.gz | 3.8 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| 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
|