Machine learning desde cero · Lección 1.1 · 2 de 33 lecciones listas · 10 min
¿Qué es el aprendizaje automático?
En pocas palabras
El aprendizaje automático deja que un programa descubra su regla a partir de ejemplos en lugar de recibirla escrita. Se ve con datos reales de tumores.
¿Cómo escribirías un programa que distinga un tumor peligroso de uno inofensivo? Podrías sentarte con una médica y convertir su experiencia en reglas: «si las células son más grandes que tanto, da la alarma». O podrías mostrarle a la máquina cientos de casos pasados con el resultado conocido y dejar que descubra la regla por sí sola. El segundo camino es el aprendizaje automático, y este curso trata de por qué funciona, cuándo falla y cómo distinguir una cosa de la otra. Pruébalo tú mismo antes de leer la explicación.
Elige una respuesta y tu grado de seguridad.
Responde para desbloquear el experimento.
Experimento interactivo
Este experimento interactivo funciona en un navegador con JavaScript activado. El texto que lo rodea describe lo que muestra.
Ver la respuesta
Respuesta correcta: Peor que con las de entrenamiento
El umbral aprendido tiene una exactitud del 89,7 % en entrenamiento, pero del 86,0 % en prueba (171 biopsias): una regla ajustada a unos datos suele rendir peor con datos nuevos. Además, un umbral fijado a mano en 15,0 alcanza el 88,3 % en prueba, es decir, más que el aprendido. Ser el mejor en entrenamiento no garantiza serlo con datos nuevos.
Prueba esto
- Mueve el control del umbral despacio de izquierda a derecha y observa la exactitud en los datos de entrenamiento. Detente donde creas que la regla funciona mejor.
- Pulsa Aprender y compara el umbral que elige el algoritmo con el tuyo. Mira las dos cifras: la exactitud en los datos de entrenamiento y en los de prueba.
- Lleva el control del umbral hasta uno de los extremos. Ahora la regla da casi a todos los tumores la misma respuesta y, aun así, la exactitud no cae a cero. Piensa por qué antes de seguir leyendo.
- Después de pulsar Aprender, comprueba qué puntuación es más alta, la de entrenamiento o la de prueba, y decide en cuál confiarías con una paciente real.
La idea en pocas palabras
En la programación tradicional, una persona escribe la regla y la computadora la aplica. En el aprendizaje automático, una persona aporta ejemplos —entradas junto con sus respuestas correctas— y un algoritmo busca una regla que reproduzca esas respuestas. La regla que encuentra se llama modelo. Una vez encontrado, el modelo se usa exactamente igual que una regla escrita a mano: entra un caso nuevo, sale una predicción.
Piensa en cómo aprendes a saber si un aguacate está maduro. Nadie te da una fórmula. Aprietas unos cuantos, los abres, te fijas en cuáles estaban bien y, tras una docena de intentos, tu pulgar «lo sabe». Nunca escribiste la regla, pero la tienes, y la construiste con ejemplos cuyo resultado conocías. Un algoritmo de aprendizaje hace lo mismo, solo que con números y con muchísima más paciencia.
Por qué funciona
Los ejemplos de esta lección vienen de un conjunto de datos médicos real: 569 tumores de mama, cada uno descrito con medidas de los núcleos celulares vistos al microscopio y cada uno clasificado por un patólogo como maligno (212 casos) o benigno (357 casos). Para empezar, usamos solo una de esas medidas y la regla más sencilla que se pueda imaginar: «por encima de un umbral → maligno; por debajo → benigno».
Elegir el umbral a mano es adivinar. Aprender el umbral es probar cada valor candidato con los ejemplos y quedarse con el que comete menos errores. Eso es todo lo que significa «aprender» aquí: una búsqueda, guiada por los datos, del ajuste que mejor funciona con los casos que ya conocemos. Todos los modelos que verás más adelante, desde una recta hasta un modelo de lenguaje con miles de millones de parámetros, siguen la misma receta: una familia de reglas posibles, una forma de puntuarlas y una búsqueda de la mejor puntuación.
Hay una trampa, y es la idea más importante de todo el campo. Una regla que se ajusta bien a los casos conocidos no es automáticamente buena. Lo que de verdad nos importa son los casos que aún no hemos visto: la próxima paciente. Por eso, antes de aprender, escondemos una parte de los datos. El modelo aprende con el conjunto de entrenamiento y luego se le califica con el conjunto de prueba, que nunca ha visto. La nota suele ser la exactitud, la proporción de casos en los que la regla acierta:
exactitud = predicciones correctas / todas las predicciones
Una regla aprendida con el conjunto de entrenamiento suele puntuar un poco menos en el de prueba. Esa diferencia es el precio honesto de enfrentarse a datos nuevos, y la puntuación de prueba es la que le darías a un médico.
Error frecuente
El error clásico de quien empieza es juzgar un modelo por lo bien que le va con los datos de los que aprendió. Con esos casos el algoritmo ha tenido todas las oportunidades de ajustarse, así que la puntuación lo halaga. La segunda trampa es olvidar la línea base. La mayoría de los tumores de este conjunto son benignos, así que una «regla» que siempre responde «benigno» ya acierta en 357 de 569 casos, casi dos tercios. Por eso, aunque una regla dé a casi todos los tumores la misma respuesta, su exactitud no cae a cero. Cualquier modelo aprendido tiene que superar esta respuesta trivial antes de merecer atención, y en medicina, además, tiene que cometer el tipo de errores adecuado, un tema al que volveremos en la lección 6.
El aprendizaje automático, por tanto, no es magia ni comprensión. Es una búsqueda disciplinada de una regla, seguida de un examen honesto con datos que la búsqueda nunca tocó. En la próxima lección miramos de cerca la materia prima —datos, características y etiquetas— y por qué la forma de dividir los datos cambia la puntuación que obtienes.
Test
Tres preguntas para comprobar lo aprendido. Elige una respuesta o despliega la solución bajo cada pregunta. Con el teclado: las flechas eligen, Enter o Espacio confirma.
Ideas clave
- En el aprendizaje automático la regla sale de ejemplos etiquetados, no de la cabeza de un programador.
- Aprender es buscar: una familia de reglas, una puntuación y el ajuste con la mejor puntuación.
- Un modelo se califica con un conjunto de prueba que nunca vio; la puntuación de entrenamiento lo halaga.
- Compara siempre con una línea base trivial, como predecir siempre la respuesta más común.
Más a fondo: fórmula, código, práctica
Las matemáticas
La exactitud es accuracy = correct / n. Una regla de umbral dice «maligno» cuando x > t. Aprender elige el t con menos errores en las filas de entrenamiento: t* = argmin over t of (mistakes on the training set). Solo los puntos medios entre valores vecinos ordenados pueden dar resultados distintos, así que la búsqueda es finita y exacta.
- La puntuación en el conjunto de entrenamiento está sesgada al alza:
t*se eligió para que ese número fuera lo más alto posible. - La puntuación en el conjunto de prueba es una estimación sin sesgo de la exactitud futura, porque no se tomó ninguna decisión con él.
- La línea base es la proporción de la clase más grande,
max(n₀, n₁) / n. Una regla aprendida solo merece conservarse si la supera con claridad.
En código (Python)
Recuentos y línea base de «siempre benigno» para todo el conjunto de datos (el lab usa solo el radio medio y una partición, así que sus 89,7 % y 86,0 % no se reproducen aquí):
from sklearn.datasets import load_breast_cancer
from sklearn.dummy import DummyClassifier
X, y = load_breast_cancer(return_X_y=True, as_frame=True)
print("tumours:", len(y))
print("malignant:", (y == 0).sum(), "benign:", (y == 1).sum()) # en sklearn, 0 = maligno
always_benign = DummyClassifier(strategy="most_frequent").fit(X, y)
print(f"always 'benign': {always_benign.score(X, y):.1%}")
Resultado
tumours: 569
malignant: 212 benign: 357
always 'benign': 62.7%
Una regla que nunca mira el tumor acierta en el 62,7 % de los casos. Esa es la vara que cualquier regla aprendida tiene que superar.
Descargar el notebook (.ipynb). Ábrelo en Jupyter o súbelo a Google Colab; descarga por sí solo los datos que falten.
Para profesionales
- Calcula primero la línea base.
DummyClassifier(strategy="most_frequent")ocupa una línea y te dice qué tiene que significar «bueno» para estos datos. - Particiona antes de aprender nada, incluido un umbral. Cualquier decisión tomada con las filas de prueba, por pequeña que sea, vuelve optimista la puntuación de prueba.
- Usa
stratify=yentrain_test_spliten clasificación, para que entrenamiento y prueba conserven la misma proporción de casos malignos. - La exactitud cuenta todos los errores por igual. Un tumor maligno que se pasa por alto y una falsa alarma no cuestan lo mismo, así que mira también los dos tipos de error por separado (lección 6).
- Un conjunto de prueba de 171 filas da una puntuación que oscila dos o tres puntos (lección 2: el error estándar es de unos 2,7 puntos con 86 %). No interpretes una diferencia tan pequeña como prueba de que una regla es mejor.
¿Te ha sido útil?
¡Gracias! Nos ayuda a mejorar.
Profundiza en el Atlas
Entradas de la enciclopedia sobre las ideas de esta lección: