sklearn.metrics.brier_score_loss

sklearn.metrics.brier_score_loss()

Calcula la pérdida de puntaje de Brier.

Cuanto menor sea la pérdida de la puntuación de Brier, mejor, de ahí la denominación con «loss». El puntaje de Brier mide la diferencia cuadrada media entre la probabilidad predicha y el resultado real. La puntuación de Brier siempre toma un valor entre cero y uno, ya que esta es la mayor diferencia posible entre una probabilidad predecible (que debe estar entre cero y uno) y el resultado real (que puede tomar valores de sólo 0 y 1). Se puede descomponer como la suma de pérdida de refinamiento y pérdida de calificación.

El puntaje Brier es apropiado para resultados binarios y categóricos que pueden ser estructurados como verdaderos o falsos, pero es inapropiado para variables ordinales que pueden tomar 3 o más valores (esto es porque el puntaje Brier asume que todos los resultados posibles son equivalentemente «distantes» uno de los otros). Cual etiqueta es considerada como la etiqueta positiva es controlado mediante el parámetro pos_label, que por defecto es la etiqueta mayor a menos que y_true sea todo 0 o todo -1, en cuyo caso pos_label es por defecto 1.

Más información en el Manual de usuario.

Parámetros
y_truearreglo de forma (n_samples,)

Objetivos verdaderos.

y_probarreglo de forma (n_samples,)

Probabilidades de la clase positiva.

sample_weightarray-like de forma (n_samples,), default=None

Ponderados de muestras.

pos_labelentero o cadena, default=None

Etiqueta de la clase positiva. pos_label se inferirá de la siguiente manera:

  • si y_true en {-1, 1} o {0, 1}, pos_label predeterminado es 1;

  • de otra forma si y_true contiene una cadena, se generará un error y pos_label debe especificarse explícitamente;

  • de lo contrario, pos_label predeterminado es la etiqueta mayor, es decir, np.unique(y_true)[-1].

Devuelve
scoreflotante

Pérdida de puntuación en Brier.

Referencias

1

Entrada de Wikipedia para la puntuación de Brier.

Ejemplos

>>> import numpy as np
>>> from sklearn.metrics import brier_score_loss
>>> y_true = np.array([0, 1, 1, 0])
>>> y_true_categorical = np.array(["spam", "ham", "ham", "spam"])
>>> y_prob = np.array([0.1, 0.9, 0.8, 0.3])
>>> brier_score_loss(y_true, y_prob)
0.037...
>>> brier_score_loss(y_true, 1-y_prob, pos_label=0)
0.037...
>>> brier_score_loss(y_true_categorical, y_prob, pos_label="ham")
0.037...
>>> brier_score_loss(y_true, np.array(y_prob) > 0.5)
0.0