BetaCalibration

class pycalib.calibration_methods.BetaCalibration(params='abm')[source]

Bases: pycalib.calibration_methods.CalibrationMethod

Probability calibration using Beta calibration

Beta calibration 1 2 is a parametric approach to calibration, specifically designed for probabilistic classifiers with output range [0,1]. Here, a calibration map family is defined based on the likelihood ratio between two Beta distributions. This parametric assumption is appropriate if the marginal class distributions follow Beta distributions. The beta calibration map has three parameters, two shape parameters a and b and one location parameter m.

Parameters

params (str, default="abm") – Defines which parameters to fit and which to hold constant. One of [‘abm’, ‘ab’, ‘am’].

References

1

Kull, M., Silva Filho, T. M., Flach, P., et al. Beyond sigmoids: How to obtain well-calibrated probabilities from binary classifiers with beta calibration. Electronic Journal of Statistics 11, 5052–5080 (2017)

2

Kull, M., Filho, T. S. & Flach, P. Beta calibration: a well-founded and easily implemented improvement on logistic calibration for binary classifiers in Proceedings of the 20th International Conference on Artificial Intelligence and Statistics (AISTATS)

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