PDI+VC · Ejercicio de Programación

EP07_03 — 🟡 Evaluación por Matriz de Confusión

7.18.3 EP07_03 🟡 Evaluación por Matriz de Confusión

Un clasificador binario de calidad de soldadura fue entrenado y probado en una línea de producción. Para cada pieza inspeccionada, el sistema registró la etiqueta real (obtenida por un especialista) y la etiqueta predicha por el clasificador, donde 1 representa “defectuosa” y 0 representa “conforme”.

La gerencia de calidad quiere saber no solo la exactitud del sistema, sino también su precisión (cuando el sistema señala un defecto, ¿con qué frecuencia está en lo correcto?) y su revocación (de todas las piezas realmente defectuosas, ¿cuántas logró identificar el sistema?) — la distinción discutida en la sección de evaluación de clasificadores del capítulo.

7.18.3.1 📋 Directrices de Implementación

  1. Cantidad: Leer el entero \(N\) (número de piezas inspeccionadas).
  2. Datos de cada pieza: Para cada una de las \(N\) piezas, leer dos enteros — la etiqueta real \(y\) y la etiqueta predicha \(\hat y\) (ambas \(\in \{0, 1\}\)).
  3. Matriz de confusión: Considerando la clase 1 (defectuosa) como positiva, contar:
    • \(VP\) (Verdadero Positivo): \(y=1\) y \(\hat y=1\);
    • \(FP\) (Falso Positivo): \(y=0\) y \(\hat y=1\);
    • \(FN\) (Falso Negativo): \(y=1\) y \(\hat y=0\);
    • \(VN\) (Verdadero Negativo): \(y=0\) y \(\hat y=0\).
  4. Métricas: Calcular \[ \text{Exactitud} = \frac{VP+VN}{N}, \quad \text{Precisión} = \frac{VP}{VP+FP}, \quad \text{Revocación} = \frac{VP}{VP+FN}. \]
  5. Casos degenerados: Si \(VP+FP=0\) (ninguna predicción positiva), imprimir Precisao: indefinida. Si \(VP+FN=0\) (ningún caso positivo real), imprimir Revocacao: indefinida.
  6. Redondeo: Todas las métricas numéricas deben redondearse a 4 decimales (redondeo half away from zero) solo en la visualización.

7.18.3.2 📌 Restricciones Computacionales

  • Convención de clase positiva fija: la clase 1 es siempre la clase positiva en este ejercicio, independientemente de su frecuencia relativa.
  • Protección contra división por cero: implemente los casos degenerados del punto 5 antes de realizar la división.
  • Orden de salida: siga exactamente el orden especificado en la sección de salida, incluso en los casos degenerados.

7.18.3.3 🧠 Fundamentación Teórica

Métrica Pregunta que responde ¿Sensible a desbalanceo?
Exactitud ¿Qué fracción de las piezas fue clasificada correctamente? Sí — puede enmascarar errores en la clase minoritaria
Precisión De las piezas señaladas como defectuosas, ¿cuántas realmente lo son? Penaliza falsos positivos
Revocación De las piezas realmente defectuosas, ¿cuántas fueron detectadas? Penaliza falsos negativos

En un contexto industrial, una revocación baja es frecuentemente más grave que una precisión baja: dejar pasar una pieza defectuosa (falso negativo) tiende a ser más costoso que inspeccionar manualmente una pieza buena señalada por error (falso positivo).

7.18.3.4 📦 Especificación de Entrada y Salida (VPL)

Entrada:

  • Línea 1: Entero \(N\).
  • Siguientes \(N\) líneas: dos enteros por línea — \(y\) y \(\hat y\), separados por espacio.

Salida (en este orden exacto):

VP=<int> FP=<int> FN=<int> VN=<int>
Acuracia: <valor o métrica indefinida>
Precisao: <valor o indefinida>
Revocacao: <valor o indefinida>

7.18.3.5 📌 Ejemplos

Entrada Salida Observación
4
1 1
0 1
1 0
0 0
VP=1 FP=1 FN=1 VN=1
Acuracia: 0.5000
Precisao: 0.5000
Revocacao: 0.5000
Un error de cada tipo.
3
0 0
0 0
0 0
VP=0 FP=0 FN=0 VN=3
Acuracia: 1.0000
Precisao: indefinida
Revocacao: indefinida
Ningún caso positivo real ni predicho.
🎮 Simulador EP07_03: Precisión x Revocación Línea de Producción
Elija un escenario de inspección y observe cómo reaccionan de manera diferente la Exactitud, la Precisión y la Revocación.
–
Figura 7.23: Simulador EP07_03: Precisión x Revocación
%%writefile EP07_03.py
# Código Python
Overwriting EP07_03.py
TestSuite("EP07_03.py").run()
✔️ EP07_03.cases ya existe en casos/
📋 5 caso(s) cargado(s) de casos/EP07_03.cases

🔍 Probando Python: EP07_03.py
⚠️ EP07_03.py: archivo vacío (menos de 3 líneas). Pruebas omitidas.