ConfidenceCalibrator Class

Ensure model confidence matches actual accuracy.


Source Code

confidence_calibrator.py
import numpy as np

class ConfidenceCalibrator:
    def expected_calibration_error(self, probs, labels, bins=10):
        bin_boundaries = np.linspace(0, 1, bins + 1)
        ece = 0.0
        
        for i in range(bins):
            # Get samples in this confidence bin
            mask = (probs > bin_boundaries[i]) & (probs <= bin_boundaries[i+1])
            n_in_bin = np.sum(mask)
            
            if n_in_bin > 0:
                avg_confidence = np.mean(probs[mask])
                avg_accuracy = np.mean(labels[mask])
                ece += (n_in_bin / len(probs)) * np.abs(avg_confidence - avg_accuracy)
                
        return ece