¿Cómo adivina el móvil la siguiente palabra?
El aprendizaje automático es hacer que un ordenador aprenda de ejemplos, en lugar de seguir reglas que escribe una persona. Con suficientes ejemplos, reconoce casos que nunca ha visto.
Así filtra tu correo basura y así sugiere tu móvil la palabra siguiente. Hoy lo harás con un método sencillo y verás cuándo falla.
Al terminar esta lección
Nota
Puedo explicar cómo un ordenador aprende de ejemplos con el método de los vecinos más cercanos.
Palabras clave
| Palabra | Qué significa | Ejemplo |
|---|---|---|
| Ejemplo etiquetado | un caso con la respuesta correcta ya escrita | un día movido |
| Entrenar | dejar que el modelo aprenda de ejemplos etiquetados | |
| kNN | un método que mira los k ejemplos más parecidos y vota | |
| Precisión | la parte de las respuestas del modelo que son correctas | |
| Sesgo | una inclinación injusta que el modelo aprende de sus ejemplos |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un modelo aprende de ejemplos con respuesta
Con las reglas de siempre, una persona escribe qué hacer en cada caso. Con el aprendizaje automático, le das al ordenador muchos casos con la respuesta ya escrita. La respuesta se llama etiqueta.
Para la empresa de bicis, llamaremos «busy» al día con 300 alquileres o más y «quiet» al resto. Dados la temperatura y la lluvia, el modelo debe decir cuál será.
El método kNN pregunta a los vecinos
Para un día nuevo, el método kNN busca los k días guardados que más se le parecen. Cada uno vota con su etiqueta. Gana la etiqueta con más votos.
Parecerse es estar cerca: se resta la temperatura con la temperatura, la lluvia con la lluvia, y se suman los cuadrados.
Ejemplo resuelto: un día de 19 grados
| Día | Temperatura y lluvia | Etiqueta | Distancia al cuadrado |
|---|---|---|---|
| A | 20 y 0 | busy | 1 + 1 = 2 |
| B | 18 y 2 | busy | 1 + 1 = 2 |
| E | 22 y 1 | busy | 9 + 0 = 9 |
| D | 8 y 10 | quiet | 121 + 81 = 202 |
| C | 5 y 8 | quiet | 196 + 49 = 245 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Antes de empezar
Nota
Pulsa Iniciar el laboratorio en la barra de la lección y espera a que esté en marcha. El terminal no tiene Python propio. Cada botón Ejecutar escribe docker exec jupyter, que lanza una orden dentro del contenedor del laboratorio.
El laboratorio entrena con tres cuartos
El script de abajo etiqueta cada día de hires.csv como «busy» o «quiet». Guarda un cuarto de los días aparte para probar y entrena con los demás. Usa k = 5.
Después imprime la precisión y una tabla con los aciertos y los fallos.
Clasifica los días guardados
docker exec jupyter python3 steps/knn.pySe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Ejemplo resuelto: aciertos y fallos
| Fila de la tabla | Qué fue de verdad | Dijo busy | Dijo quiet |
|---|---|---|---|
| Primera | busy | 23 | 10 |
| Segunda | quiet | 7 | 52 |
| Precisión | 0,815 | unos 82 de cada 100 | |
| Responder siempre quiet | 0,641 | unos 64 de cada 100 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
El valor de k cambia el modelo
Con k = 1 el modelo copia a su vecino más cercano. Se aprende los ejemplos casi de memoria y acierta con ellos, pero se confunde con días nuevos.
Con una k mayor, la respuesta es la de muchos vecinos y se mueve menos. El script de abajo prueba seis valores de k y mide el acierto en los dos grupos de días.
Prueba seis valores de k
docker exec jupyter python3 steps/knnk.pySe muestra aquí y no se ejecuta. Crea una cuenta gratuita para pulsar Ejecutar y escribirlo en el terminal de tu propio laboratorio.
Ejemplo resuelto: aprendidos y guardados
| k | Acierto con días aprendidos | Acierto con días guardados |
|---|---|---|
| 1 | 0,963 | 0,728 |
| 3 | 0,894 | 0,772 |
| 5 | 0,883 | 0,815 |
| 15 | 0,853 | 0,815 |
| 45 | 0,832 | 0,826 |
| 135 | 0,821 | 0,826 |
Las celdas que rellenan los estudiantes quedan en blanco en esta vista previa.
Un error frecuente
Advertencia
Mucha gente cree que un modelo con un 96 % de acierto es excelente. Mira con qué datos se midió. Con k = 1, el 0,963 es de los días que aprendió. Con días nuevos acierta solo 0,728.
Un modelo hereda el sesgo de sus ejemplos
Un modelo solo conoce lo que ve en sus ejemplos. Si un grupo casi no aparece, el modelo lo trata peor. Un asistente de voz entrenado sobre todo con un acento falla más con los demás.
El sesgo no lo pone el ordenador a propósito. Viene de los datos y de quién los eligió. Quien entrena un modelo tiene que comprobar si acierta igual con cada grupo.
Para ir más lejos: cambia el corte
El laboratorio llamó «busy» a los 300 alquileres o más. Si cambias el corte a 250 o a 350, cambia cuántos días son movidos. También cambia la precisión de responder siempre quiet.
Piensa qué corte tiene más sentido para decidir cuántas bicis llevar a cada estación.