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
es tal que es igual al número de observaciones que se sabe que están en el grupo y se prevée que estén en el grupo .Entonces en la clasificación binaria el conteo de verdaderos negativos es
, falsos negativos , verdaderos positivos y falsos positivos .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 eny_true
oy_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)