En esta primera lección vamos a responder la pregunta fundamental del curso: ¿qué es exactamente el Machine Learning (aprendizaje automático)? Veremos una definición formal y otra intuitiva, entenderemos en qué se diferencia de la programación tradicional y conoceremos los conceptos básicos que usaremos durante todo el curso: modelo, entrenamiento, predicción y datos de entrenamiento. Además, presentaremos a MercaFresh, un supermercado online ficticio cuyos problemas de negocio nos acompañarán como hilo conductor en todas las lecciones. Entender bien estos cimientos es importante porque todo lo demás —estadística, preprocesamiento, algoritmos, evaluación— se construye sobre ellos.
Contenido
- Una definición intuitiva
- La definición formal
- Programación tradicional vs. Machine Learning
- Conceptos clave: datos, modelo, entrenamiento y predicción
- MercaFresh: el caso que acompañará todo el curso
- Qué es (y qué no es) el Machine Learning
Una definición intuitiva
Imagina que quieres enseñar a un niño a distinguir manzanas de naranjas. No le das una lista de reglas del tipo "si el diámetro es mayor de 7 cm y la rugosidad supera el índice 0,3, entonces es naranja". Simplemente le enseñas muchas manzanas y muchas naranjas, le dices cuál es cuál, y su cerebro aprende de los ejemplos. Al cabo de un tiempo, el niño reconoce una fruta que nunca ha visto antes.
El Machine Learning funciona con la misma filosofía:
- En lugar de escribir reglas a mano, mostramos ejemplos al ordenador.
- El ordenador detecta patrones en esos ejemplos.
- Con esos patrones, es capaz de generalizar: dar respuestas correctas ante casos nuevos que nunca ha visto.
Dicho en una frase: el Machine Learning es la disciplina que permite a los ordenadores aprender de los datos sin ser programados explícitamente para cada caso concreto.
La definición formal
La definición más citada es la de Tom Mitchell (1997):
"Se dice que un programa aprende de la experiencia E con respecto a una tarea T y una medida de rendimiento P, si su rendimiento en T, medido por P, mejora con la experiencia E."
Parece abstracta, pero se entiende enseguida con un ejemplo aplicado a nuestro supermercado online:
| Componente | Significado | Ejemplo en MercaFresh |
|---|---|---|
| Tarea (T) | Lo que queremos que haga el programa | Predecir cuántas unidades de leche se venderán mañana |
| Experiencia (E) | Los datos de los que aprende | Historial de ventas diarias de los últimos 3 años |
| Rendimiento (P) | Cómo medimos si lo hace bien | Diferencia media entre la predicción y las ventas reales |
Si el programa, a medida que ve más historial de ventas (E), predice la demanda (T) con menos error (P), entonces está aprendiendo. Así de concreto es el aprendizaje automático: no es magia, es mejora medible a partir de datos.
Programación tradicional vs. Machine Learning
Esta es la distinción más importante de toda la lección. En la programación tradicional, el programador escribe las reglas; en Machine Learning, las reglas salen de los datos.
flowchart LR
subgraph Tradicional["Programación tradicional"]
A1[Datos] --> P1[Programa con reglas escritas a mano]
R1[Reglas] --> P1
P1 --> S1[Respuestas]
end
subgraph ML["Machine Learning"]
A2[Datos] --> P2[Algoritmo de aprendizaje]
S2[Respuestas conocidas] --> P2
P2 --> R2[Modelo: reglas aprendidas]
end
Fíjate en el cambio de flujo: en el enfoque tradicional entran datos y reglas, y salen respuestas. En Machine Learning entran datos y respuestas conocidas, y sale un modelo (las reglas aprendidas), que luego usaremos para responder casos nuevos.
Un ejemplo con código: detectar pedidos sospechosos
Supongamos que MercaFresh quiere detectar pedidos potencialmente fraudulentos. Con programación tradicional escribiríamos reglas a mano:
# Enfoque tradicional: reglas escritas por una persona
def es_pedido_sospechoso(importe, num_articulos, cliente_nuevo):
"""Devuelve True si el pedido parece sospechoso, según reglas fijas."""
if importe > 500 and cliente_nuevo:
return True # pedido muy grande de un cliente recién registrado
if num_articulos > 100:
return True # cantidad de artículos anormalmente alta
return False
print(es_pedido_sospechoso(importe=650, num_articulos=12, cliente_nuevo=True))
# Salida: TrueExpliquemos el fragmento paso a paso:
- Definimos una función que recibe tres características del pedido: el importe, el número de artículos y si el cliente es nuevo.
- Las condiciones (
importe > 500,num_articulos > 100) son umbrales decididos por una persona, basados en su intuición. - El programa nunca mejorará por sí solo: si los estafadores cambian de táctica (por ejemplo, hacen muchos pedidos pequeños), habrá que reescribir las reglas a mano.
Con Machine Learning, en cambio, el planteamiento es distinto. Este fragmento es solo ilustrativo (aprenderemos a hacerlo de verdad en los módulos 4 y 6), pero muestra la idea:
# Enfoque de Machine Learning: las reglas se aprenden de ejemplos
from sklearn.tree import DecisionTreeClassifier
# Datos históricos: [importe, num_articulos, cliente_nuevo (1/0)]
pedidos = [
[650, 12, 1],
[30, 5, 0],
[420, 80, 1],
[55, 10, 0],
]
# Etiquetas conocidas: 1 = fue fraude, 0 = fue legítimo
etiquetas = [1, 0, 1, 0]
modelo = DecisionTreeClassifier() # creamos un modelo vacío
modelo.fit(pedidos, etiquetas) # ENTRENAMIENTO: aprende de los ejemplos
# PREDICCIÓN sobre un pedido nuevo que el modelo nunca ha visto
print(modelo.predict([[580, 15, 1]]))
# Salida: [1] -> el modelo lo clasifica como sospechosoAnalicemos las diferencias clave:
- No hemos escrito ningún
ifcon umbrales: le hemos dado ejemplos históricos (pedidos) junto con las respuestas correctas (etiquetas). - La llamada
modelo.fit(...)es el momento del entrenamiento: el algoritmo examina los ejemplos y deduce sus propias reglas internas. - La llamada
modelo.predict(...)usa esas reglas aprendidas para responder ante un caso nuevo. - Si el fraude cambia de patrón, no reescribimos código: reentrenamos el modelo con datos más recientes.
¿Cuándo compensa cada enfoque?
| Situación | Enfoque recomendable |
|---|---|
| Las reglas son pocas, claras y estables (p. ej., calcular el IVA de un pedido) | Programación tradicional |
| Las reglas son demasiadas o imposibles de enumerar (p. ej., reconocer una foto de un tomate) | Machine Learning |
| El entorno cambia constantemente (fraude, gustos de los clientes) | Machine Learning |
| No hay datos históricos disponibles | Programación tradicional (de momento) |
Conceptos clave: datos, modelo, entrenamiento y predicción
Estos cuatro términos aparecerán en cada lección del curso. Conviene fijarlos desde ya:
- Datos de entrenamiento: el conjunto de ejemplos históricos del que el algoritmo aprende. En el ejemplo anterior, la lista
pedidoscon susetiquetas. Cada fila es un ejemplo (o instancia) y cada columna una característica (o feature): importe, número de artículos, etc. - Modelo: el resultado del aprendizaje. Es una representación matemática de los patrones encontrados en los datos. Podemos imaginarlo como "las reglas aprendidas", empaquetadas en un objeto que sabe responder preguntas.
- Entrenamiento: el proceso por el que el algoritmo ajusta el modelo a los datos. En scikit-learn se corresponde con el método
fit(). - Predicción (o inferencia): el uso del modelo ya entrenado para dar una respuesta ante datos nuevos. En scikit-learn, el método
predict().
Una analogía útil: los datos de entrenamiento son el temario, el entrenamiento es el estudio, el modelo es el conocimiento adquirido y la predicción es el examen con preguntas nuevas.
flowchart LR
D[Datos de entrenamiento] --> E[Entrenamiento]
E --> M[Modelo]
N[Datos nuevos] --> M
M --> P[Predicciones]
Un matiz importante que desarrollaremos en el módulo 6: lo valioso de un modelo no es que acierte con los datos que ya vio, sino que generalice bien a datos nuevos. Un modelo que memoriza el pasado pero falla con el presente no sirve de nada en el negocio.
MercaFresh: el caso que acompañará todo el curso
MercaFresh es un supermercado online ficticio que opera en varias ciudades. Cada día registra miles de pedidos, y por tanto acumula datos muy valiosos:
- Pedidos: fecha, productos, cantidades, importe, franja horaria de entrega.
- Clientes: antigüedad, frecuencia de compra, ticket medio, ciudad, dispositivo usado.
- Productos: categoría, precio, stock, caducidad, promociones activas.
Con estos datos, la dirección de MercaFresh se plantea preguntas de negocio que son, exactamente, problemas de Machine Learning. Los iremos resolviendo a lo largo del curso:
| Pregunta de negocio | Problema de ML | Dónde lo trabajaremos |
|---|---|---|
| ¿Cuántos kilos de fruta necesitaremos el sábado? | Predicción de demanda | Módulos 4 y 6 |
| ¿Qué clientes están a punto de dejar de comprarnos? | Abandono de clientes (churn) | Módulos 4, 6 y siguientes |
| ¿Qué grupos naturales de clientes tenemos? | Segmentación de clientes | Módulo 5 |
| ¿Este pedido es anómalo o fraudulento? | Detección de anomalías | Módulos 5 y 9 |
De momento no necesitas entender cómo se resuelven; basta con que veas que detrás de cada pregunta de negocio hay datos, y detrás de los datos, patrones aprendibles.
Qué es (y qué no es) el Machine Learning
Para cerrar la lección, delimitemos bien el concepto:
- El ML es una rama de la Inteligencia Artificial centrada en aprender de datos. Toda solución de ML es IA, pero no toda IA es ML (un sistema de reglas expertas escritas a mano también es IA).
- El ML no es magia: si los datos son malos, escasos o sesgados, el modelo será malo. Lo resume el dicho "garbage in, garbage out" (si entra basura, sale basura).
- El ML no es solo estadística, aunque se apoya fuertemente en ella (lo veremos en el módulo 2); pone el énfasis en la predicción automática y a gran escala.
- Un modelo no entiende el negocio: encuentra correlaciones en los datos. La interpretación y las decisiones siguen siendo humanas.
Errores Comunes y Consejos
- Confundir el modelo con el algoritmo. El algoritmo es la receta de aprendizaje (por ejemplo, "árbol de decisión"); el modelo es el resultado concreto tras entrenar con tus datos. Con el mismo algoritmo y datos distintos obtienes modelos distintos.
- Pensar que más reglas manuales resuelven todo. Si te descubres escribiendo el vigésimo
ifpara cubrir un caso especial, probablemente el problema pide un enfoque de aprendizaje. - Creer que el ML no necesita intervención humana. Alguien tiene que definir la tarea, elegir los datos, medir el rendimiento y decidir qué hacer con las predicciones.
- Esperar certezas. Un modelo da predicciones probables, no verdades. En MercaFresh, "este cliente tiene un 80 % de probabilidad de abandonar" es información valiosísima, pero no una bola de cristal.
- Consejo: cuando leas sobre ML, traduce siempre los términos a la definición de Mitchell: ¿cuál es la tarea T?, ¿cuál es la experiencia E?, ¿cómo se mide P? Este hábito te dará claridad durante todo el curso.
Ejercicios
Ejercicio 1
Identifica los componentes T, E y P (según la definición de Mitchell) para este caso de MercaFresh: "Queremos que el sistema sugiera automáticamente productos a cada cliente en la página de inicio, usando su historial de compras, y medir el porcentaje de sugerencias en las que el cliente hace clic".
Ejercicio 2
Clasifica cada uno de estos problemas de MercaFresh como más adecuado para programación tradicional o para Machine Learning, y justifica en una frase:
- Calcular los gastos de envío según el peso del pedido y el código postal (tarifas fijas publicadas).
- Estimar cuántos repartidores harán falta el próximo puente festivo.
- Validar que un correo electrónico introducido en el registro tiene formato correcto.
- Detectar reseñas de productos escritas por bots.
Ejercicio 3
En el ejemplo de código de la lección, la lista pedidos tenía 4 ejemplos con 3 características cada uno. Responde: (a) ¿qué representa cada fila?, (b) ¿qué representa cada columna?, (c) ¿qué papel juega la lista etiquetas?, (d) ¿qué línea del código realiza el entrenamiento y cuál la predicción?
Soluciones
Solución 1
- T (tarea): sugerir productos relevantes a cada cliente en la página de inicio.
- E (experiencia): el historial de compras de los clientes (y de clientes similares).
- P (rendimiento): el porcentaje de clics sobre las sugerencias mostradas (CTR). Si al ver más historial las sugerencias reciben más clics, el sistema está aprendiendo.
Solución 2
- Tradicional: las tarifas son reglas fijas, conocidas y estables; no hay nada que aprender.
- Machine Learning: depende de patrones históricos complejos (festivos, clima, tendencias); es un problema de predicción a partir de datos.
- Tradicional: el formato de un correo se valida con una regla clara y estable.
- Machine Learning: no existen reglas fijas que definan una reseña de bot; los patrones cambian y deben aprenderse de ejemplos.
Solución 3
- (a) Cada fila es un ejemplo (un pedido histórico concreto).
- (b) Cada columna es una característica del pedido: importe, número de artículos y si el cliente era nuevo.
- (c)
etiquetascontiene la respuesta correcta conocida de cada ejemplo (1 = fraude, 0 = legítimo); es lo que permite al algoritmo aprender la relación entre características y resultado. - (d) El entrenamiento lo realiza
modelo.fit(pedidos, etiquetas); la predicción,modelo.predict([[580, 15, 1]]).
Conclusión
En esta lección hemos definido el Machine Learning de forma intuitiva (aprender de ejemplos para generalizar) y formal (la definición T-E-P de Mitchell), y hemos visto su diferencia esencial con la programación tradicional: las reglas ya no se escriben a mano, sino que emergen de los datos durante el entrenamiento. También hemos fijado el vocabulario básico —datos de entrenamiento, modelo, entrenamiento, predicción— y hemos conocido MercaFresh, el supermercado online cuyos retos (demanda, churn, segmentación, anomalías) resolveremos a lo largo del curso. En la próxima lección daremos un paso atrás para entender de dónde viene todo esto: recorreremos la historia y evolución del Machine Learning, desde Turing hasta la era actual de la IA generativa.
Curso de Machine Learning
Módulo 1: Introducción al Machine Learning
- ¿Qué es el Machine Learning?
- Historia y evolución del Machine Learning
- Tipos de Machine Learning
- Aplicaciones del Machine Learning
- El flujo de trabajo de un proyecto de Machine Learning
Módulo 2: Fundamentos de Estadística y Probabilidad
- Conceptos básicos de estadística
- Distribuciones de probabilidad
- Correlación y covarianza
- Inferencia estadística
- Teorema de Bayes
Módulo 3: Preprocesamiento de Datos
- Limpieza de datos
- Manejo de datos faltantes
- Transformación de datos
- Codificación de variables categóricas
- Normalización y estandarización
- Ingeniería de características
Módulo 4: Algoritmos de Machine Learning Supervisado
- Regresión lineal
- Regresión logística
- Árboles de decisión
- Máquinas de soporte vectorial (SVM)
- K-Vecinos más cercanos (K-NN)
- Naive Bayes
- Redes neuronales
Módulo 5: Algoritmos de Machine Learning No Supervisado
- Clustering: K-means
- Clustering jerárquico
- Análisis de componentes principales (PCA)
- Análisis de agrupamiento DBSCAN
- Visualización de datos con t-SNE y UMAP
Módulo 6: Evaluación y Validación de Modelos
- División de datos: entrenamiento, validación y prueba
- Métricas de evaluación
- Validación cruzada
- Curva ROC y AUC
- Overfitting y underfitting
Módulo 7: Técnicas Avanzadas y Optimización
- Regularización: Ridge, Lasso y Elastic Net
- Ensemble Learning
- Gradient Boosting
- Redes neuronales profundas (Deep Learning)
- Optimización de hiperparámetros
Módulo 8: Implementación y Despliegue de Modelos
- Frameworks y bibliotecas populares
- Implementación de modelos en producción
- Mantenimiento y monitoreo de modelos
- Consideraciones éticas y de privacidad
Módulo 9: Proyectos Prácticos
- Proyecto 1: Predicción de precios de viviendas
- Proyecto 2: Clasificación de imágenes
- Proyecto 3: Análisis de sentimientos en redes sociales
- Proyecto 4: Detección de fraudes
- Proyecto 5: Segmentación de clientes
