sklearn.calibration.calibration_curve

sklearn.calibration.calibration_curve()

Calcula las probabilidades verdaderas y predichas para una curva de calibración.

El método asume que las entradas vienen de un clasificador binario, y discretizar el intervalo [0, 1] en intervalos (bins).

Las curvas de calibración también pueden denominarse diagramas de fiabilidad.

Lee más en el Manual de usuario.

Parámetros
y_truearray-like de forma (n_samples,)

Objetivos verdaderos.

y_probarray-like de forma (n_samples,)

Probabilidades de la clase positiva.

normalizebool, default=False

Si y_prob necesita ser normalizado en el intervalo [0, 1], es decir, no es una probabilidad adecuada. Si es True, el valor más pequeño de y_prob se mapea linealmente a 0 y el más grande a 1.

n_binsint, default=5

Número de intervalos (bins) para discretizar el intervalo [0, 1]. Un número mayor requiere más datos. Los intervalos sin muestras (es decir, sin valores correspondientes en y_prob) no se devolverán, por lo que los arreglos devueltos pueden tener menos valores que n_bins.

strategy{“uniform”, “quantile”}, default=”uniform”

Estrategia utilizada para definir la amplitud de los intervalos (bins).

uniforme

Los intervalos (bin) tienen una amplitud idéntica.

cuantil

Los intervalos (bins) tienen el mismo número de muestras y dependen de y_prob.

Devuelve
prob_truendarray de forma (n_bins,) o smaller

La proporción de muestras cuya clase es la clase positiva, en cada intervalo (fracción de positivos).

prob_predndarray de forma (n_bins,) o smaller

La probabilidad media predicha en cada intervalo.

Referencias

Alexandru Niculescu-Mizil and Rich Caruana (2005) Predicting Good Probabilities With Supervised Learning, in Proceedings of the 22nd International Conference on Machine Learning (ICML). Ver sección 4 (Qualitative Analysis of Predictions).

Ejemplos

>>> import numpy as np
>>> from sklearn.calibration import calibration_curve
>>> y_true = np.array([0, 0, 0, 0, 1, 1, 1, 1, 1])
>>> y_pred = np.array([0.1, 0.2, 0.3, 0.4, 0.65, 0.7, 0.8, 0.9,  1.])
>>> prob_true, prob_pred = calibration_curve(y_true, y_pred, n_bins=3)
>>> prob_true
array([0. , 0.5, 1. ])
>>> prob_pred
array([0.2  , 0.525, 0.85 ])