sklearn.metrics.confusion_matrix

sklearn.metrics.confusion_matrix()

Calcula la matriz de confusión para evaluar la precisión de una clasificación.

Por definición, una matriz de confusión \(C\) es tal que \(C_{i, j}\) es igual al número de observaciones que se sabe que están en el grupo \(i\) y se prevée que estén en el grupo \(j\).

Entonces en la clasificación binaria el conteo de verdaderos negativos es \(C_{0,0}\), falsos negativos \(C_{1,0}\), verdaderos positivos \(C_{1,1}\) y falsos positivos \(C_{0,1}\).

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

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

Valores objetivo reales (correctos).

y_predarray-like de forma (n_samples,)

Objetivos estimados devueltos por un clasificador.

labelsarray-like de forma (n_classes), default=None

Lista de etiquetas para indexar la matriz. Esto puede utilizarse para reordenar o seleccionar un subconjunto de etiquetas. Si es None, los que aparecen al menos una vez en y_true o y_pred se utilizan en orden ordenado.

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

Ponderados de muestras.

Nuevo en la versión 0.18.

normalize{“true”, “pred”, “all”}, default=None

Normaliza la matriz de confusión sobre las verdaderas (filas), las condiciones predichas (columnas) o toda la población. Si es None, la matriz de confusión no se normalizará.

Devuelve
Cndarray de forma (n_classes, n_classes)

Matriz de confusión cuya fila i-ésima y entrada de columna j-ésima indica el número de muestras con la etiqueta verdadera siendo la clase i-ésima y la etiqueta predicha siendo la clase j-ésima.

Ver también

plot_confusion_matrix

Gráfica de la Matriz de Confusión.

ConfusionMatrixDisplay

Visualización de la matriz de confusión.

Referencias

1

Entrada de Wikipedia para la matriz de confusión (Wikipedia y otras referencias pueden usar una convención diferente para los ejes).

Ejemplos

>>> from sklearn.metrics import confusion_matrix
>>> y_true = [2, 0, 2, 2, 0, 1]
>>> y_pred = [0, 0, 2, 2, 0, 2]
>>> confusion_matrix(y_true, y_pred)
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])
>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
>>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
>>> confusion_matrix(y_true, y_pred, labels=["ant", "bird", "cat"])
array([[2, 0, 0],
       [0, 0, 1],
       [1, 0, 2]])

En el caso binario, podemos extraer verdaderos positivos, etc. de la siguiente manera:

>>> tn, fp, fn, tp = confusion_matrix([0, 1, 0, 1], [1, 1, 1, 0]).ravel()
>>> (tn, fp, fn, tp)
(0, 2, 1, 1)

Ejemplos usando sklearn.metrics.confusion_matrix