Nadie escribió esta regla
Una empresa de reparto en Zaragoza quiere avisar a sus clientes antes de que un paquete llegue tarde.
Nadie en la oficina sabe escribir la regla exacta. Pero tienen miles de envíos antiguos, y saben cuáles llegaron tarde.
Con esos envíos, un programa puede encontrar la regla por sí solo. Eso es el aprendizaje automático.
Al final de esta lección
Nota
Puedo explicar cómo aprende un modelo a partir de ejemplos.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Aprendizaje automático | programas que sacan reglas de los datos | |
| Ejemplo | un caso pasado con su respuesta conocida | |
| Característica | un dato de entrada del ejemplo | km de ruta |
| Etiqueta | la respuesta correcta del ejemplo | llegó tarde |
| Modelo | la regla que el programa aprende | |
| Predicción | la respuesta del modelo a un caso nuevo |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Reglas escritas frente a reglas aprendidas
En un programa normal, una persona escribe la regla. Por ejemplo: si la ruta pasa de 20 km, avisa al cliente.
En el aprendizaje automático cambias el orden. Das al programa muchos ejemplos con su respuesta. El programa prueba reglas y se queda con la que más acierta.
Esa regla aprendida se llama modelo. Luego la usas con casos nuevos.
Las dos formas, una al lado de otra
| Programa normal | Aprendizaje automático | |
|---|---|---|
| Qué das | La regla | Ejemplos con su respuesta |
| Quién encuentra la regla | Una persona | El programa |
| Qué sale | Respuestas | Una regla, el modelo |
| Cuándo conviene | La regla es clara | La regla es difícil de escribir |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un ejemplo tiene entradas y una respuesta
Cada envío antiguo es un ejemplo. Tiene datos de entrada, llamados características: los kilómetros, la hora de salida, el tiempo que hacía.
También tiene la respuesta que ya conoces: llegó tarde o no. Esa respuesta es la etiqueta.
El modelo mira las características y aprende a adivinar la etiqueta. Con un envío nuevo, su respuesta es una predicción.
Ejemplo resuelto: cuatro envíos
| Envío | Km (característica) | Llegó tarde (etiqueta) |
|---|---|---|
| A | 3 | No |
| B | 25 | Sí |
| C | 12 | No |
| D | 40 | Sí |
| Envío nuevo | 22 | ¿? (la predicción) |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Mira cómo aprende un límite
# Cada envío: kilómetros de ruta y si llegó tarde (True) o no (False).
km = [3, 12, 25, 8, 30, 18, 40, 5]
late = [False, False, True, False, True, False, True, False]
best_limit = 0
best_right = 0
# Probamos varios límites y nos quedamos con el que más acierta.
for limit in [5, 10, 15, 20, 25, 30]:
right = 0
for i in range(len(km)):
guess = km[i] > limit
if guess == late[i]:
right = right + 1
print("Límite", limit, "km: acierta", right, "de", len(km))
if right > best_right:
best_right = right
best_limit = limit
print("Regla aprendida: llega tarde si la ruta pasa de", best_limit, "km")
# Cambia 22 por otra distancia y pulsa Ejecutar.
print("Envío nuevo de 22 km, ¿llegará tarde?", 22 > best_limit)
Un error frecuente
Advertencia
Mucha gente cree que el modelo entiende el problema. No lo entiende: solo encuentra un patrón en los ejemplos. Si los ejemplos están mal o son pocos, la regla aprendida también estará mal. Por eso los datos importan tanto como el programa.