¿Te resulta más fácil leer con fondo crema, un tono de color, más contraste o un texto más grande? Elige tus colores y tu texto una sola vez, para todas las páginas.

Lección gratuita

Cómo explicar una predicción

Después de esta lección: Puedo explicar qué entradas hicieron que un modelo diera una respuesta.

Lección de 60 min2 comandosLaboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

¿Cómo se explica una predicción?

Explicar una predicción es decir qué datos de entrada pesaron más en la respuesta de un modelo. Importa porque una persona rechazada merece saber por qué, y alguien debe poder contestarle.

Una empresa filtra candidaturas con una puntuación. Una candidata con 41 puntos queda fuera y pregunta el motivo.

Al final de esta lección

Nota

Puedo explicar qué entradas hicieron que un modelo diera una respuesta.

Palabras clave

PalabraQué significaEjemplo
Predicciónla respuesta que da un modelo para un caso
Entradaun dato que recibe el modeloaños de experiencia
Pesocuánto cuenta una entrada en la puntuación
Importanciacuánto cambia la respuesta al cambiar una entrada
Caja negraun modelo cuyo interior no se puede leer
Cortela puntuación mínima para pasar

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

En un modelo sencillo se leen los pesos

Un modelo sencillo suma entradas multiplicadas por pesos. En este filtro, la puntuación da 6 puntos por cada año de experiencia y 5 por cada punto de la prueba. Resta 2 por cada mes sin trabajo.

Los pesos ya explican mucho: un mes sin trabajo resta 2 puntos.

Ejemplo resuelto: la puntuación de la candidata

EntradaValorPesoAporta
Años de experiencia3618
Puntos de la prueba7535
Meses sin trabajo6-2-12
Puntuación total41

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Repite la cuenta de la tabla

Comando
docker exec jupyter python3 -c "print(6 * 3 + 5 * 7 - 2 * 6)"

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Cambiar una entrada muestra su importancia

Muchos modelos son una caja negra: no puedes leer sus pesos. Aun así puedes preguntarles. Cambia una entrada, deja las demás igual y mira cuánto se mueve la respuesta.

Ese movimiento es la importancia de la entrada para esa persona. El método sirve con cualquier modelo.

Cambia una entrada cada vez

Código: python
def score(person):
    # Experiencia en años, puntos de la prueba y meses sin trabajo.
    return 6 * person[0] + 5 * person[1] - 2 * person[2]

person = [3, 7, 6]
names = ["experiencia", "prueba", "meses sin trabajo"]
changes = [[0, 4], [1, 8], [2, 0]]

base = score(person)
print("puntuación inicial:", base)
for change in changes:
    changed = person.copy()
    changed[change[0]] = change[1]
    print(names[change[0]], "pasa a", change[1], "y la puntuación cambia", score(changed) - base)
# Añade el cambio [0, 5] a la lista changes y vuelve a ejecutar.

Ejemplo resuelto: tres cambios

CambioNueva puntuaciónDiferencia
Experiencia de 3 a 4 años47+6
Prueba de 7 a 8 puntos46+5
Meses sin trabajo de 6 a 053+12

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

Qué cambio daría la vuelta a la decisión

El corte es 50 puntos y la candidata tiene 41. Una explicación útil dice qué cambio la haría pasar. Se llama explicación contrafactual: cuenta lo que habría ocurrido si algo fuera distinto.

Con dos años más de experiencia llega a 53. Con 9 puntos en la prueba llega a 51.

Ejemplo resuelto: ¿pasa el corte de 50?

CambioNueva puntuación¿Pasa?
Experiencia de 3 a 5 años53Sí
Prueba de 7 a 9 puntos51Sí
Meses sin trabajo de 6 a 151Sí
Meses sin trabajo de 6 a 347No

Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.

El laboratorio ya trae un modelo con pesos

El script steps/model.py ajusta una recta a los alquileres. Imprime tres líneas en inglés. Las dos primeras son los pesos: cada grado de más suma 11,2 alquileres y cada milímetro de lluvia resta 8,2.

Aquí también puedes leer el modelo. Con un modelo más complicado solo te quedaría cambiar una entrada y mirar.

Lee los pesos del modelo del laboratorio

Comando
docker exec jupyter python3 steps/model.py

Se muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.

Un error muy común

Advertencia

Mucha gente cree que explicar un modelo es lo mismo que justificarlo. Explicar solo dice qué pesó. Si ese motivo es razonable es otra pregunta, y la decide una persona.

Una explicación puede enseñar un problema

Aquí cada mes sin trabajo resta casi lo que suma un punto de prueba. Un hueco en el empleo puede venir de cuidar a un familiar, de una enfermedad o de estudiar.

La explicación no arregla el modelo, pero avisa de que esa entrada hay que revisarla.

Sobre este laboratorio y su código: Laboratorio JupyterLab de ciencia de datos: pandas, Matplotlib y scikit-learn en el navegador

¿Enseñas a una clase? Asigna este módulo a tus alumnos con guía del profesor, tareas con corrección automática y un laboratorio para cada alumno.