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.
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 ajoblib.parallel_backend
context.-1
means using all processors.
- Returns
self – Returns an instance of self.
- Return type
-
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.