BayesianBinningQuantiles

class pycalib.calibration_methods.BayesianBinningQuantiles(C=10, input_range=[0, 1])[source]

Bases: pycalib.calibration_methods.CalibrationMethod

Probability calibration using Bayesian binning into quantiles

Bayesian binning into quantiles 1 considers multiple equal frequency binning models and combines them through Bayesian model averaging. Each binning model \(M\) is scored according to \(\text{Score}(M) = P(M) \cdot P(D | M),\) where a uniform prior \(P(M)\) is assumed. The marginal likelihood \(P(D | M)\) has a closed form solution under the assumption of independent binomial class distributions in each bin with beta priors.

Parameters
  • C (int, default = 10) – Constant controlling the number of binning models.

  • input_range (list, shape (2,), default=[0, 1]) – Range of the scores to calibrate.

1

Naeini, M. P., Cooper, G. F. & Hauskrecht, M. Obtaining Well Calibrated Probabilities Using Bayesian Binning in Proceedings of the Twenty-Ninth AAAI Conference on Artificial Intelligence, Austin, Texas, USA.

Methods Summary

fit(X, y[, n_jobs])

Fit the calibration method based on the given uncalibrated class probabilities X and ground truth labels y.

get_params([deep])

Get parameters for this estimator.

plot(filename[, xlim])

Plot the calibration map.

predict(X)

Predict the class of new samples after scaling.

predict_proba(X)

Compute calibrated posterior probabilities for a given array of posterior probabilities from an arbitrary classifier.

set_params(**params)

Set the parameters of this estimator.

Methods Documentation

fit(X, y, n_jobs=None)[source]

Fit the calibration method based on the given uncalibrated class probabilities X and ground truth labels y.

Parameters
  • X (array-like, shape (n_samples, n_classes)) – Training data, i.e. predicted probabilities of the base classifier on the calibration set.

  • y (array-like, shape (n_samples,)) – Target classes.

  • n_jobs (int or None, optional (default=None)) – The number of jobs to use for the computation. None means 1 unless in a joblib.parallel_backend context. -1 means using all processors.

Returns

self – Returns an instance of self.

Return type

object

get_params(deep=True)

Get parameters for this estimator.

Parameters

deep (bool, default=True) – If True, will return the parameters for this estimator and contained subobjects that are estimators.

Returns

params – Parameter names mapped to their values.

Return type

mapping of string to any

plot(filename, xlim=[0, 1], **kwargs)

Plot the calibration map.

Parameters
  • xlim (array-like) – Range of inputs of the calibration map to be plotted.

  • **kwargs – Additional arguments passed on to matplotlib.plot().

predict(X)

Predict the class of new samples after scaling. Predictions are identical to the ones from the uncalibrated classifier.

Parameters

X (array-like, shape (n_samples, n_classes)) – The uncalibrated posterior probabilities.

Returns

C – The predicted classes.

Return type

array, shape (n_samples,)

predict_proba(X)[source]

Compute calibrated posterior probabilities for a given array of posterior probabilities from an arbitrary classifier.

Parameters

X (array-like, shape (n_samples, n_classes)) – The uncalibrated posterior probabilities.

Returns

P – The predicted probabilities.

Return type

array, shape (n_samples, n_classes)

set_params(**params)

Set the parameters of this estimator.

The method works on simple estimators as well as on nested objects (such as pipelines). The latter have parameters of the form <component>__<parameter> so that it’s possible to update each component of a nested object.

Parameters

**params (dict) – Estimator parameters.

Returns

self – Estimator instance.

Return type

object