Source code for sorbetto.performance.constraint_fixed_prediction_rates

import math

from sorbetto.performance.two_class_classification_performance import (
    TwoClassClassificationPerformance,
)


[docs] class ConstraintFixedPredictionRates: def __init__(self, ratePos: float): assert isinstance(ratePos, float) assert ratePos >= 0.0 assert ratePos <= 1.0 self._ratePos = ratePos def __call__(self, performance): assert isinstance(performance, TwoClassClassificationPerformance) value = performance.pfp + performance.ptp return math.isclose(value, self._ratePos, abs_tol=1e-8)
[docs] def getRateNeg(self): return 1 - self._ratePos
[docs] def getRatePos(self): return self._ratePos
def __str__(self): ratePos = self._ratePos rateNeg = 1.0 - ratePos return "constraint: fixed prediction rates for (neg,pos)=({:g},{:g})".format( rateNeg, ratePos )