¿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
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Predicción | la respuesta que da un modelo para un caso | |
| Entrada | un dato que recibe el modelo | años de experiencia |
| Peso | cuánto cuenta una entrada en la puntuación | |
| Importancia | cuánto cambia la respuesta al cambiar una entrada | |
| Caja negra | un modelo cuyo interior no se puede leer | |
| Corte | la 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
| Entrada | Valor | Peso | Aporta |
|---|---|---|---|
| Años de experiencia | 3 | 6 | 18 |
| Puntos de la prueba | 7 | 5 | 35 |
| Meses sin trabajo | 6 | -2 | -12 |
| Puntuación total | 41 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Repite la cuenta de la tabla
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
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
| Cambio | Nueva puntuación | Diferencia |
|---|---|---|
| Experiencia de 3 a 4 años | 47 | +6 |
| Prueba de 7 a 8 puntos | 46 | +5 |
| Meses sin trabajo de 6 a 0 | 53 | +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?
| Cambio | Nueva puntuación | ¿Pasa? |
|---|---|---|
| Experiencia de 3 a 5 años | 53 | Sí |
| Prueba de 7 a 9 puntos | 51 | Sí |
| Meses sin trabajo de 6 a 1 | 51 | Sí |
| Meses sin trabajo de 6 a 3 | 47 | No |
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
docker exec jupyter python3 steps/model.pySe 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.