sklearn.metrics.multilabel_confusion_matrix

sklearn.metrics.multilabel_confusion_matrix()

Calcula una matriz de confusión para cada clase o muestra.

Nuevo en la versión 0.21.

Calcula la matriz de confusión multietiqueta de la clase (por defecto) o de la muestra (samplewise=True) para evaluar la precisión de una clasificación, y las matrices de confusión de salida para cada clase o muestra.

En la matriz de confusión multietiqueta \(MCM\), el número de verdaderos negativos es \(MCM_{:,0,0}\), el de falsos negativos es \(MCM_{:,1,0}\), el de verdaderos positivos es \(MCM_{:,1,1}\) y el de falsos positivos es \(MCM_{:,0,1}\).

Los datos multiclase se tratarán como si estuvieran binarizados bajo una transformación uno contra el resto. Las matrices de confusión devueltas estarán en el orden de las etiquetas únicas ordenadas en la unión de (y_true, y_pred).

Leer más en el Manual de Usuario.

Parámetros
y_true{array-like, sparse matrix} de forma (n_samples, n_outputs) o (n_samples,)

Valores objetivo reales (correctos).

y_pred{array-like, sparse matrix} de forma (n_samples, n_outputs) o (n_samples,)

Objetivos estimados devueltos por un clasificador.

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

Ponderaciones de muestras.

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

Una lista de clases o índices de columnas para seleccionar algunas (o para forzar la inclusión de clases ausentes de los datos).

samplewisebool, default=False

En el caso multietiqueta, se calcula una matriz de confusión por muestra.

Devuelve
multi_confusionndarray de forma (n_outputs, 2, 2)

Una matriz de confusión de 2x2 correspondiente a cada salida de la entrada. Cuando se calcula multi_confusion a nivel de clase (por defecto), entonces n_outputs = n_labels; cuando se calcula multi_confusion a nivel de muestra (samplewise=True), n_outputs = n_samples. Si se define labels, los resultados se devolverán en el orden especificado en labels, de lo contrario los resultados se devolverán en orden sorted por defecto.

Ver también

confusion_matrix

Notas

El multilabel_confusion_matrix calcula las matrices de confusión multietiqueta a nivel de clase o de muestra, y en las tareas multiclase, las etiquetas se binarizan de forma uno contra el resto; mientras que confusion_matrix calcula una matriz de confusión para la confusión entre cada dos clases.

Ejemplos

Caso indicador multietiqueta:

>>> import numpy as np
>>> from sklearn.metrics import multilabel_confusion_matrix
>>> y_true = np.array([[1, 0, 1],
...                    [0, 1, 0]])
>>> y_pred = np.array([[1, 0, 0],
...                    [0, 1, 1]])
>>> multilabel_confusion_matrix(y_true, y_pred)
array([[[1, 0],
        [0, 1]],

       [[1, 0],
        [0, 1]],

       [[0, 1],
        [1, 0]]])

Caso multiclase:

>>> y_true = ["cat", "ant", "cat", "cat", "ant", "bird"]
>>> y_pred = ["ant", "ant", "cat", "cat", "ant", "cat"]
>>> multilabel_confusion_matrix(y_true, y_pred,
...                             labels=["ant", "bird", "cat"])
array([[[3, 1],
        [0, 2]],

       [[5, 0],
        [1, 0]],

       [[2, 1],
        [1, 2]]])