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 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)