# Introducción al machine learning

**Categoría:** Inteligencia artificial · **Nivel:** Intermedio · **Lectura:** 16 min
**Publicada:** 2026-07-27 · **Actualizada:** 2026-07-27 · **Autoría:** Underc0de
**Versión HTML (canónica):** https://underc0de.org/guias/inteligencia-artificial/introduccion-al-machine-learning/

Las tres formas de aprender de los datos, el vocabulario mínimo para leer cualquier material serio, y la disciplina de evaluación que separa un modelo que funciona de uno que solo parece funcionar.

## Respuesta rápida

El **machine learning** o aprendizaje automático es la rama de la inteligencia artificial que **ajusta parámetros a partir de ejemplos** en lugar de seguir reglas escritas. Tiene tres formas: **supervisada**, que entrena con características y sus etiquetas correspondientes y cubre la mayoría de los casos reales; **no supervisada**, que busca patrones en datos sin etiquetar; y **por refuerzo**, donde un agente aprende maximizando una recompensa. Pero lo que de verdad separa un modelo útil de uno inútil no es el algoritmo: es la **disciplina de evaluación**. Entrenar y evaluar con los mismos datos es un error metodológico, y produce números perfectos que no significan nada.

## Qué es y dónde encaja

El **aprendizaje automático** es la rama de la inteligencia artificial donde el comportamiento del sistema no se escribe: se *ajusta* a partir de datos. En lugar de programar «si el correo contiene estas palabras, marcalo como no deseado», se le muestran cientos de miles de correos ya clasificados y el algoritmo encuentra por sí mismo qué combinaciones distinguen unos de otros.

La ubicación exacta importa porque los tres términos se usan como sinónimos y no lo son:

- **Inteligencia artificial** es el campo entero, e incluye técnicas que no aprenden de datos —búsqueda, lógica, reglas—.
- **Aprendizaje automático** es la parte que aprende de ejemplos.
- **Aprendizaje profundo** es la parte del aprendizaje automático que usa redes neuronales de muchas capas. Es lo que hizo posibles los modelos de lenguaje y de imagen actuales.

Tres círculos concéntricos, del más grande al más chico. Los [tipos de inteligencia artificial](../tipos-de-inteligencia-artificial/index.md) desarrollan esa ubicación con más detalle.

## El vocabulario mínimo

Seis términos alcanzan para leer prácticamente cualquier material sobre el tema. Vale aprenderlos con precisión, porque casi toda la confusión posterior viene de acá.

| Término | Qué es | En el ejemplo de predecir el precio de una casa |
|---|---|---|
| **Ejemplo** | Una fila de datos: un caso concreto | Una casa con sus datos y su precio |
| **Característica** | Una variable de entrada usada para predecir | Metros cuadrados, ambientes, barrio, antigüedad |
| **Etiqueta** | La «respuesta» del ejemplo, lo que se quiere predecir | El precio al que se vendió |
| **Modelo** | El resultado del entrenamiento; la función que mapea características a predicción | Lo que devuelve un precio para una casa nueva |
| **Parámetro** | Un número interno que el entrenamiento ajusta | Cuánto pesa cada metro cuadrado en el precio |
| **Hiperparámetro** | Un ajuste que elegís vos antes de entrenar | Cuántos vecinos considerar, cuán profundo dejar un árbol |

La distinción entre **parámetro** e **hiperparámetro** es la que más cuesta al principio y la que más aparece después: los parámetros los aprende el modelo, los hiperparámetros los decidís vos. Elegir bien los segundos es buena parte del trabajo, y tiene su propia trampa, que aparece más abajo.

## Las tres formas de aprender

![Las tres formas de aprendizaje automático y la división de los datos. Supervisado: se entrena con características y sus etiquetas, y se usa para clasificación y regresión. No supervisado: datos sin etiquetas, donde el modelo encuentra patrones y agrupa lo parecido. Por refuerzo: un agente interactúa con un entorno que le devuelve recompensa. Abajo, la división en conjuntos de entrenamiento, validación y prueba, con la advertencia sobre el sobreajuste y el esquema de la validación cruzada de k particiones.](../../assets/img/guias/introduccion-al-machine-learning-paradigmas.svg)

### Aprendizaje supervisado

El glosario de Google lo define como entrenar un modelo **a partir de características y sus etiquetas correspondientes**, y agrega una analogía difícil de mejorar: es como aprender una materia estudiando un conjunto de preguntas con sus respuestas; una vez dominada la relación entre preguntas y respuestas, el estudiante puede contestar preguntas nuevas del mismo tema.

Es el enfoque que cubre la enorme mayoría de los problemas reales, y se divide en dos según qué tipo de respuesta produce:

- **Clasificación:** la respuesta es una categoría de un conjunto finito. ¿Es no deseado o no? ¿En qué idioma está este texto? ¿Qué dígito es este?
- **Regresión:** la respuesta es un número continuo. ¿Cuánto vale esta casa? ¿Cuántas unidades se van a vender el mes que viene?

Su límite es obvio y caro: **necesita ejemplos etiquetados**, y etiquetar cuesta tiempo y dinero. Buena parte del trabajo real de un proyecto se va en conseguir esas etiquetas.

### Aprendizaje no supervisado

Google lo define como entrenar un modelo para **encontrar patrones en un conjunto de datos, típicamente sin etiquetar**, y señala que su uso más común es agrupar los datos en conjuntos de ejemplos parecidos. Su ejemplo: agrupar canciones según propiedades de la música, sin que nadie haya definido de antemano los géneros.

Sirve cuando las etiquetas son escasas o no existen, y también como paso previo: los grupos que encuentra pueden convertirse en la entrada de otro modelo. La contracara es que **evaluar el resultado es mucho más difícil**, porque no hay una respuesta correcta contra la que comparar: hay que interpretar si los grupos que salieron significan algo.

### Aprendizaje por refuerzo

Acá no hay ejemplos etiquetados ni un conjunto de datos fijo: hay un **agente** que actúa en un entorno y recibe recompensas. Según el glosario de Google, en aprendizaje por refuerzo el agente es la entidad que usa una *política* para maximizar el *retorno esperado* obtenido al transitar entre estados del entorno.

Es el enfoque de los sistemas que aprenden a jugar, de la robótica y de varios problemas de control. Su dificultad práctica es que necesita muchísimas interacciones, lo que lo hace ideal en simulaciones y complicado en el mundo físico, donde cada intento cuesta tiempo, dinero o piezas.

## El flujo de trabajo real

El paso de entrenar es el que sale en las presentaciones y el que menos tiempo lleva. Este es el orden completo:

1. **Definir el problema y la métrica de éxito.** Qué se quiere predecir, y con qué número se va a decidir si el modelo sirve. Definir la métrica *antes* evita el vicio de elegir después la que quedó mejor.
2. **Conseguir y explorar los datos.** Mirarlos de verdad: cuántos hay, qué falta, qué está mal cargado, qué distribución tienen. Casi siempre aparece algo que cambia el plan.
3. **Preparar las características.** Limpiar, normalizar escalas, convertir categorías en números, decidir qué hacer con los valores faltantes. Suele ser la etapa más larga y la que más impacta en el resultado.
4. **Dividir los datos.** Separar entrenamiento, validación y prueba *antes* de tocar el modelo. Hacerlo después contamina la evaluación.
5. **Entrenar una línea base simple.** Un modelo elemental primero: sirve para saber si algo más complejo vale la pena. Si el modelo sofisticado no le gana a la línea base, no aporta.
6. **Evaluar, ajustar y comparar.** Probar alternativas midiendo sobre validación, no sobre prueba.
7. **Evaluar una vez sobre prueba.** El número final. Se mira una sola vez, cuando ya no vas a cambiar nada.
8. **Poner en producción y monitorear.** El rendimiento se degrada solo con el tiempo, porque los datos nuevos dejan de parecerse a los de entrenamiento.

## Sobreajuste y generalización

Este es el concepto central de todo el campo, y la documentación de scikit-learn lo plantea sin anestesia:

> **scikit-learn, sobre validación cruzada.** «Aprender los parámetros de una función de predicción y evaluarla con los mismos datos es un **error metodológico**: un modelo que simplemente repitiera las etiquetas de las muestras que acaba de ver tendría una puntuación perfecta pero no podría predecir nada útil sobre datos aún no vistos. Esta situación se llama *sobreajuste*.»

El glosario de Google define el otro lado de la moneda, la **generalización**, como la capacidad de un modelo de hacer predicciones correctas sobre datos nuevos que nunca vio, y aclara que un modelo que generaliza es lo opuesto de uno que se sobreajusta. Esa es la única cualidad que hace útil a un modelo fuera del laboratorio.

### La división en tres conjuntos

La práctica estándar es partir los datos en tres:

- **Entrenamiento:** se usan para ajustar los parámetros.
- **Validación:** se usan para elegir entre alternativas e hiperparámetros.
- **Prueba:** se usan una única vez, para el número final.

¿Por qué tres y no dos? scikit-learn explica el motivo con precisión: al evaluar distintas configuraciones de hiperparámetros, «*sigue habiendo riesgo de sobreajuste sobre el conjunto de prueba, porque los parámetros se pueden ir retocando hasta que el estimador rinda de manera óptima. De ese modo, el conocimiento sobre el conjunto de prueba puede filtrarse al modelo*». Ese **filtrado** es el error silencioso más común: cada vez que mirás el conjunto de prueba y cambiás algo, lo estás convirtiendo en parte del entrenamiento.

### Validación cruzada

Reservar un conjunto de validación fijo tiene un costo: quita datos al entrenamiento y el resultado depende de qué casos cayeron de cada lado. La **validación cruzada de k particiones** resuelve las dos cosas: parte el conjunto de entrenamiento en *k* trozos, entrena *k* veces usando *k*−1 trozos y evaluando en el que quedó afuera, y promedia los resultados. Es más costoso en cómputo y desperdicia menos datos, que es una ventaja grande cuando hay pocos.

## Por qué la exactitud engaña

La **exactitud** —qué porcentaje de predicciones fue correcto— es la métrica más intuitiva y la que más veces cuenta una mentira. El caso que lo muestra es el de las **clases desbalanceadas**.

Supongamos un detector de fraude en un conjunto donde una de cada mil transacciones es fraudulenta. Un modelo que responda «no es fraude» *siempre*, sin mirar los datos, acierta el 99,9 % de las veces. Su exactitud es excelente y su utilidad es exactamente cero: no detecta un solo fraude, que es lo único que se le pedía.

Por eso, cuando las clases están desbalanceadas, se miran dos números por separado:

| Métrica | Qué pregunta | Qué pasa si es baja |
|---|---|---|
| **Precisión** | De lo que marqué como fraude, ¿cuánto era fraude de verdad? | Muchas falsas alarmas: el equipo se cansa y deja de mirar |
| **Exhaustividad** | De todos los fraudes que había, ¿cuántos detecté? | Fraudes que pasan sin que nadie los vea |

Las dos se mueven en sentidos opuestos: bajar el umbral de alerta sube la exhaustividad y hunde la precisión, y subirlo hace lo contrario. Dónde poner el umbral **no es una decisión técnica**, es una decisión de negocio o de riesgo: depende de qué cuesta más, una falsa alarma o un caso que se escapa.

## Los datos son el proyecto

Hay una frase que resume la mitad del oficio: el modelo aprende lo que está en los datos, incluido lo que no querías que aprendiera. No es una advertencia abstracta.

El caso más citado es el de un sistema de selección de personal que **quedó descartado por penalizar sistemáticamente a las candidatas mujeres**. El foro de Underc0de lo cubrió en 2018, en un hilo publicado por *graphixx*. El mecanismo no fue una regla escrita por nadie: el modelo se entrenó con currículums históricos de un sector donde la contratación había sido mayoritariamente masculina, y aprendió que ese patrón era la señal de un buen candidato. Hizo exactamente lo que se le pidió —replicar el patrón de los datos— y por eso el resultado fue inaceptable.

> **Lo que hay que revisar en los datos, antes que el algoritmo.** ¿De dónde salieron y quién los generó? ¿Representan a la población sobre la que se va a usar el modelo, o a otra? ¿Qué decisiones humanas quedaron codificadas en las etiquetas? ¿Hay alguna característica que sea un *sustituto* de un atributo que no querés usar —un código postal que funcione como proxy de nivel socioeconómico—? Ningún ajuste de hiperparámetros arregla un problema de esta clase.

## Fallan distinto que el software

Un programa tradicional falla de manera comprensible: hay una condición mal escrita, un caso no contemplado, un desbordamiento. Un modelo falla de otra forma, y conviene saberlo antes de confiarle algo importante.

Los **ejemplos adversarios** son la demostración más clara. Se trata de entradas modificadas de un modo que a una persona le resulta irrelevante y que hacen que el modelo se equivoque. El foro de Underc0de recogió en 2019, en un hilo de *Dragora*, un caso donde unas pegatinas colocadas en el asfalto alteraban el comportamiento del piloto automático de un vehículo. Ningún conductor humano habría cambiado de carril por unas calcomanías en el suelo.

La lección práctica no es que los modelos sean inseguros y haya que descartarlos, sino que **su superficie de error no coincide con la intuición humana**. Un modelo puede tener un rendimiento excelente en promedio y fallar de forma catastrófica en un caso específico que a nosotros nos parece trivial. De ahí la insistencia en probar con casos raros, en monitorear en producción y en no dejar decisiones importantes sin una persona que las revise. Ese es el tema de [riesgos, ética y uso responsable de la IA](../riesgos-etica-y-uso-responsable-de-la-ia/index.md).

## Por dónde empezar a practicar

Para practicar de verdad no hace falta infraestructura: alcanza con **Python** y **scikit-learn**, que trae conjuntos de datos de ejemplo, las funciones de división y validación, y decenas de familias de algoritmos con la misma interfaz —modelos lineales, máquinas de vectores de soporte, vecinos más cercanos, árboles de decisión, conjuntos como bosques aleatorios y potenciación del gradiente, y redes neuronales—.

```python
# La división que hay que hacer siempre, antes de entrenar cualquier cosa
from sklearn.model_selection import train_test_split, cross_val_score

X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.2, random_state=0
)

# Elegir ajustes mirando validación cruzada sobre el entrenamiento,
# nunca mirando X_test
puntajes = cross_val_score(modelo, X_train, y_train, cv=5)
print(puntajes.mean())

# Y solo al final, una única vez, el número que se reporta
print(modelo.fit(X_train, y_train).score(X_test, y_test))
```

El orden que rinde: empezar por un problema supervisado con datos ya limpios, hacer bien la división, entrenar una línea base simple y solo después complicar. **Aprender la disciplina de evaluación antes que los algoritmos** evita casi todos los errores caros. Si además querés armar el hábito de programar, la guía de [cómo aprender programación desde cero](../../programacion/aprender-programacion-desde-cero/index.md) es un buen punto de partida.

## Errores frecuentes

- **Evaluar con datos de entrenamiento.** El error metodológico básico. Da números hermosos y sin significado.
- **Mirar el conjunto de prueba muchas veces.** Cada vez que lo mirás y ajustás algo, deja de ser un conjunto de prueba.
- **Dividir después de preparar los datos.** Si normalizás usando el conjunto completo, información de la prueba se filtra al entrenamiento.
- **Reportar exactitud en un problema desbalanceado.** Es la forma más común de presentar un modelo inútil como un éxito.
- **Empezar por el modelo más complejo.** Sin una línea base simple no hay forma de saber si la complejidad aportó algo.
- **Confundir correlación con causa.** Un modelo encuentra asociaciones; que una característica prediga bien no significa que la cause.
- **Suponer que un modelo entrenado queda listo para siempre.** El mundo cambia y el rendimiento cae sin que nadie toque el código.

## Preguntas frecuentes

### ¿Qué diferencia hay entre inteligencia artificial y machine learning?

El machine learning o aprendizaje automático es una rama de la inteligencia artificial, no un sinónimo. La IA es el campo entero, e incluye técnicas que no aprenden de datos, como los algoritmos de búsqueda y los sistemas basados en reglas. El aprendizaje automático es la parte que ajusta parámetros a partir de ejemplos en lugar de seguir reglas escritas. Y el aprendizaje profundo, a su vez, es una parte del aprendizaje automático: la que usa redes neuronales de muchas capas. Son tres círculos concéntricos, del más grande al más chico.

### ¿Cuál es la diferencia entre clasificación y regresión?

Qué tipo de respuesta produce el modelo. En clasificación la respuesta es una categoría de un conjunto finito: correo deseado o no deseado, tumor benigno o maligno, idioma del texto. En regresión la respuesta es un número continuo: el precio de una casa, la temperatura de mañana, cuántas unidades se van a vender. Las dos son aprendizaje supervisado, porque en ambas se entrena con ejemplos etiquetados. La distinción importa porque cambian las métricas: en clasificación se mide acierto por categoría, y en regresión, distancia al valor real.

### ¿Qué es el sobreajuste y cómo se evita?

Es cuando un modelo se ajusta tanto a los datos de entrenamiento que falla al predecir sobre datos nuevos: memorizó en lugar de generalizar. La documentación de scikit-learn lo plantea de la forma más clara posible: entrenar y evaluar con los mismos datos es un error metodológico, porque un modelo que repitiera las etiquetas que acaba de ver tendría puntaje perfecto y sería inútil. Se evita reservando datos que el modelo no ve durante el entrenamiento, usando validación cruzada para elegir los ajustes, y con técnicas de regularización que penalizan la complejidad innecesaria.

### ¿Por qué un 99 % de exactitud puede ser un mal resultado?

Porque la exactitud engaña cuando las clases están desbalanceadas. Si de cada mil transacciones una es fraudulenta, un modelo que responda «no es fraude» siempre, sin mirar nada, acierta el 99,9 % de las veces y no detecta un solo fraude. Es el ejemplo clásico de una métrica que parece excelente y describe un modelo sin ningún valor. Por eso en problemas desbalanceados se miran precisión y exhaustividad por separado: cuántas de las alertas eran ciertas, y cuántos de los casos reales se detectaron.

### ¿Qué necesito para empezar a practicar machine learning?

Python y scikit-learn alcanzan para recorrer el camino completo con datos reales, sin GPU ni infraestructura. La biblioteca incluye conjuntos de datos de ejemplo, las funciones para dividir datos y validar, y decenas de familias de algoritmos con la misma interfaz. El orden que rinde es empezar por un problema supervisado simple con datos ya limpios, hacer bien la división entre entrenamiento y prueba, y solo después complicar el modelo. Aprender la disciplina de evaluación antes que los algoritmos evita casi todos los errores caros.

### ¿Hace falta mucha matemática?

Para usar bibliotecas y resolver problemas reales, mucho menos de lo que se suele decir: alcanza con entender qué hace cada algoritmo, qué supone sobre los datos y cómo se lee cada métrica. Para inventar algoritmos o entender por qué funcionan, sí hacen falta álgebra lineal, cálculo y estadística. La trampa habitual es postergar la práctica hasta terminar los cursos de matemática; conviene el orden inverso, porque los conceptos matemáticos se entienden mucho mejor cuando ya viste el problema que resuelven.

## Fuentes

Documentación oficial y material de la comunidad consultados para esta guía. Fecha de consulta: 27 de julio de 2026.

### Aportes de la comunidad Underc0de

1. **Underc0de, foro.** [Amazon desecha una IA de reclutamiento por su sesgo contra las mujeres](https://underc0de.org/foro/inteligencia-artificial-y-biohacking/amazon-desecha-una-ia-de-reclutamiento-por-su-sesgo-contra-las-mujeres/), por *graphixx*, sección Inteligencia Artificial y BioHacking, 10 de octubre de 2018. Caso citado en el apartado sobre datos.
2. **Underc0de, foro.** [Pegatinas en el asfalto bastan para «hackear» el piloto automático de un Tesla](https://underc0de.org/foro/inteligencia-artificial-y-biohacking/pegatinas-en-el-asfalto-bastan-para-hackear-el-piloto-automatico-de-un-tesla/), por *Dragora*, 9 de abril de 2019. Caso citado sobre ejemplos adversarios.
3. **Underc0de, foro.** [Sección Inteligencia Artificial y BioHacking](https://underc0de.org/foro/inteligencia-artificial-y-biohacking/). Hilos de la comunidad sobre IA y aprendizaje automático.

### Documentación oficial

4. **Google.** [Machine Learning Glossary](https://developers.google.com/machine-learning/glossary). Definiciones de aprendizaje supervisado, no supervisado, agente, sobreajuste, generalización, etiqueta y conjunto de entrenamiento.
5. **scikit-learn.** [Cross-validation: evaluating estimator performance](https://scikit-learn.org/stable/modules/cross_validation.html). Definición de sobreajuste como error metodológico, división en tres conjuntos, filtrado de información y validación cruzada de k particiones.
6. **scikit-learn.** [Supervised learning](https://scikit-learn.org/stable/supervised_learning.html). Familias de algoritmos supervisados disponibles en la biblioteca.
7. **scikit-learn.** [Getting started](https://scikit-learn.org/stable/getting_started.html). Interfaz común de ajuste y predicción usada en el ejemplo de código.

## La ruta de IA

Cinco guías que se leen en orden, del concepto al uso responsable. Esta es la tercera.

1. [¿Qué es la inteligencia artificial y cómo funciona?](../que-es-la-inteligencia-artificial/index.md)
2. [Tipos de inteligencia artificial](../tipos-de-inteligencia-artificial/index.md)
4. [Cómo escribir buenos prompts para herramientas de IA](../como-escribir-buenos-prompts/index.md)
5. [Riesgos, ética y uso responsable de la inteligencia artificial](../riesgos-etica-y-uso-responsable-de-la-ia/index.md)

---

Esta guía forma parte de un proyecto de la comunidad Underc0de para organizar conocimiento técnico en español. Fuente canónica: https://underc0de.org/guias/inteligencia-artificial/introduccion-al-machine-learning/
