Un 98 % que no detecta nada
Una aseguradora prueba un modelo que detecta partes falsos. El informe dice: exactitud del 98 %.
Suena muy bien. Pero solo 2 de cada 100 partes son falsos. Un modelo que diga siempre que el parte es bueno también acierta el 98 %.
Y no detecta ni un solo fraude. Hoy aprendes a leer ese número.
Al final de esta lección
Nota
Puedo calcular la exactitud a partir de una tabla de resultados.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Resultado | una predicción junto a la respuesta real | |
| Exactitud | el porcentaje de predicciones acertadas | 9 de 10 es 90 % |
| Falsa alarma | dice que sí y era que no | |
| Caso no detectado | dice que no y era que sí | |
| Clase rara | una respuesta que casi nunca sale | fraude |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
La exactitud son aciertos entre el total
Pon cada predicción al lado de la respuesta real del conjunto de prueba. Cuenta cuántas coinciden.
La exactitud es esa cuenta sobre el total, en porcentaje. Divide los aciertos entre el total y multiplica por 100.
Por ejemplo, 8 aciertos de 10: 8 entre 10 es 0,8. Por 100, un 80 %.
Ejemplo resuelto: diez partes revisados
| Parte | Predicción | Realidad | ¿Acierta? |
|---|---|---|---|
| 1 | Bueno | Bueno | Sí |
| 2 | Fraude | Fraude | Sí |
| 3 | Bueno | Bueno | Sí |
| 4 | Bueno | Fraude | No, caso no detectado |
| 5 | Fraude | Bueno | No, falsa alarma |
| 6 a 10 | Bueno | Bueno | 5 aciertos más |
| Total | 8 de 10, un 80 % |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Calcula la exactitud en Python
# Un modelo revisa 10 partes de una aseguradora. True significa fraude.
predicted = [False, True, False, False, True, False, False, False, False, False]
actual = [False, True, False, True, False, False, False, False, False, False]
right = 0
for i in range(len(actual)):
if predicted[i] == actual[i]:
right = right + 1
accuracy = right * 100 / len(actual)
print("Aciertos:", right, "de", len(actual))
print("Exactitud:", accuracy, "%")
# Cambia el cuarto valor de predicted a True y pulsa Ejecutar.
# ¿Qué pasa con la exactitud?
Los dos errores no cuestan lo mismo
Un fallo puede ser de dos tipos.
Una falsa alarma marca como fraude un parte honrado. El cliente espera semanas su dinero y se enfada.
Un caso no detectado deja pasar un parte falso. La aseguradora paga lo que no debía.
La exactitud cuenta los dos igual. Por eso mira también cuántos hay de cada tipo.
Los cuatro tipos de resultado
| Predicción | Realidad | Nombre | ¿Acierta? |
|---|---|---|---|
| Fraude | Fraude | Fraude detectado | Sí |
| Bueno | Bueno | Bueno confirmado | Sí |
| Fraude | Bueno | Falsa alarma | No |
| Bueno | Fraude | Caso no detectado | No |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un error frecuente
Advertencia
Mucha gente cree que una exactitud alta siempre significa un buen modelo. No es así cuando lo que buscas es raro. Con 2 fraudes de cada 100 partes, decir siempre que no hay fraude da un 98 %. Con una clase rara, cuenta también los casos no detectados.
Dos modelos, 1.000 partes, 20 fraudes
| Modelo | Aciertos | Exactitud | Fraudes detectados |
|---|---|---|---|
| Dice siempre que es bueno | 980 | 98 % | 0 de 20 |
| Modelo entrenado | 960 | 96 % | 16 de 20 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.