Source code for caliber.binary_classification.binning.histogram_binning.base
import numpy as np
from caliber.binary_classification.binning.base import BinningBinaryClassificationModel
[docs]
class HistogramBinningBinaryClassificationModel(BinningBinaryClassificationModel):
def _fit_bin(
self, i: int, mask: np.ndarray, probs: np.ndarray, targets: np.ndarray
):
prob_bin = np.mean(mask)
self._params.append(
np.mean(targets[mask] - probs[mask])
if prob_bin >= self.min_prob_bin
else np.nan
)
def _predict_bin(self, i: int, mask: np.ndarray, probs: np.ndarray):
if not np.isnan(self._params[i - 1]):
return np.clip(probs[mask] + self._params[i - 1], 0, 1)
return probs[mask]