| 12345678910111213141516 |
- # pyright: basic
- from __future__ import annotations
- import numpy as np
- def confidence_certainty(y_prob: np.ndarray) -> np.ndarray:
- # 2 * |p - 0.5| maps 0 -> very uncertain and 1 -> very certain.
- return 2.0 * np.abs(np.asarray(y_prob, dtype=float) - 0.5)
- def confidence_uncertainty(y_prob: np.ndarray) -> np.ndarray:
- # Normalized uncertainty in [0, 1]: 1 at p=0.5 and 0 at p in {0, 1}.
- uncertainty = 1.0 - confidence_certainty(np.asarray(y_prob, dtype=float))
- return np.clip(uncertainty, 0.0, 1.0)
|