IA Aplicada al Desarrollo de Software · Módulo 3

Aprendizaje Automático (Machine Learning)
en el Desarrollo de Software

Conceptos fundamentales, algoritmos, ciclo de vida y aplicaciones prácticas
Guía de estudio · Preparación para examen · Versión académica

Conceptos fundamentales y definiciones

¿Qué es el Aprendizaje Automático?

El Machine Learning (ML) es una rama de la Inteligencia Artificial que permite a los sistemas aprender patrones a partir de datos sin ser explícitamente programados para cada tarea. En lugar de seguir reglas codificadas a mano, el sistema ajusta sus parámetros internos mediante un proceso de entrenamiento.

Definición formal (Mitchell, 1997): "Un programa de computadora 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."

Diferencias clave: Programación tradicional vs. ML

AspectoProgramación tradicionalMachine Learning
EntradaDatos + ReglasDatos + Respuestas (etiquetas)
SalidaRespuestasReglas (modelo aprendido)
MantenimientoActualizar reglas manualmenteReentrenar con nuevos datos
EscalabilidadLimitada por complejidad de reglasMejora con más datos
Casos de usoLógica determinista claraPatrones complejos o implícitos

Terminología esencial

Tipos de aprendizaje automático

Aprendizaje supervisado Supervisado
Los datos de entrenamiento incluyen etiquetas. El modelo aprende a predecir la salida correcta.
Ejemplos: clasificación de bugs, predicción de defectos, estimación de esfuerzo.
Aprendizaje no supervisado No supervisado
Sin etiquetas. El modelo descubre estructura oculta en los datos.
Ejemplos: agrupación de tickets similares, detección de anomalías, clustering de código.
Aprendizaje por refuerzo Refuerzo
Un agente aprende por prueba y error maximizando una recompensa.
Ejemplos: optimización de pipelines CI/CD, agentes de pruebas automáticas.
Aprendizaje semi-supervisado
Mezcla de datos etiquetados (pocos) y no etiquetados (muchos).
Ejemplos: clasificación de código con pocos ejemplos anotados.

Tipos de tareas

TareaSalidaAlgoritmos típicosEjemplo en software
ClasificaciónClase discretaSVM, Random Forest, Red neuronalBug crítico / no crítico
RegresiónValor continuoRegresión lineal, GBM, MLPEstimación de horas de desarrollo
ClusteringGruposK-Means, DBSCAN, HierarchicalAgrupación de requisitos similares
Detección de anomalíasNormal / AnomalíaIsolation Forest, AutoencoderDetección de fallos en producción
Generación / NLPTexto, códigoTransformers (GPT, BERT)Autocompletado, generación de tests
RankingOrden de relevanciaLambdaRank, LightGBMPriorización de tareas en backlog

Algoritmos principales

Algoritmos clásicos supervisados

Regresión lineal y logística

Sigmoide: σ(z) = 1 / (1 + e^(−z)) donde z = w·x + b

Árboles de decisión

Random Forest

Gradient Boosting (GBM, XGBoost, LightGBM)

Support Vector Machines (SVM)

K-Nearest Neighbors (KNN)

Algoritmos no supervisados

K-Means Clustering

DBSCAN

PCA (Análisis de Componentes Principales)

Comparativa rápida de algoritmos

AlgoritmoTipoInterpreta-bilidadEscalabilidadCuándo usarlo
Regresión lineal/logísticaSup.AltaAltaLínea base, relaciones lineales
Árbol de decisiónSup.AltaMediaNecesidad de explicabilidad
Random ForestSup.MediaAltaDatos tabulares, robustez
XGBoost / LightGBMSup.MediaAltaCompeticiones, datos tabulares
SVMSup.BajaMediaDatasets medianos, texto
Red neuronal / DLSup.BajaMuy altaImágenes, texto, audio
K-MeansNo sup.MediaAltaClustering con K conocido
DBSCANNo sup.MediaMediaClusters irregulares, ruido
PCANo sup.MediaAltaReducción de dimensionalidad

Ciclo de vida de un proyecto ML

┌─────────────────────────────────────────────────────────────────────┐ │ CICLO DE VIDA ML (ML Lifecycle) │ │ │ │ 1. Definición 2. Datos 3. Preprocesado │ │ del problema ──► Recolección ──► Feature │ │ (objetivo, (fuentes, Engineering │ │ métricas) etiquetado) (limpieza, transform.) │ │ │ │ │ │ ▼ ▼ │ │ 7. Monitorización 6. Despliegue 5. Evaluación 4. Entrenamiento │ │ y Mantenimiento◄── (Producción) ◄── y selección ◄── y validación │ │ (drift, reentren.) (API/servicio) de modelo (CV, tuning) │ └─────────────────────────────────────────────────────────────────────┘

Fases detalladas

1. Definición del problema

2. Recolección y etiquetado de datos

3–4. Preprocesado y entrenamiento

Ver Sección 5 para detalle de preprocesamiento.

5. Evaluación y selección

6. Despliegue (Deployment)

7. Monitorización y mantenimiento

Preprocesamiento y Feature Engineering

Limpieza de datos

Transformación de features

TécnicaCuándo usarlaCómo funciona
Normalización (Min-Max)KNN, SVM, redes neuronalesx' = (x − min) / (max − min) → [0,1]
Estandarización (Z-score)Regresión, PCAx' = (x − μ) / σ → media 0, std 1
Log / Box-CoxDistribuciones sesgadasReduce la asimetría
One-Hot EncodingVariables categóricas nominalesCrea columnas binarias por categoría
Label EncodingCategóricas ordinalesAsigna entero a cada categoría
Target EncodingCategóricas con alta cardinalidadReemplaza categoría por media del target
BinningVariables continuas con no-linealidadAgrupa valores en intervalos discretos

Feature Engineering

Regla de oro: El feature engineering suele tener mayor impacto en el rendimiento del modelo que el algoritmo elegido. Datos bien preparados superan a algoritmos complejos con datos sucios.

Evaluación de modelos y métricas

Partición de datos

Métricas de clasificación

Predicho Positivo Predicho Negativo Verdadero Pos. TP FN Verdadero Neg. FP TN
MétricaFórmulaCuándo priorizarla
AccuracyTP+TN / TotalClases balanceadas
PrecisionTP / (TP+FP)Minimizar falsos positivos (spam)
Recall (Sensitivity)TP / (TP+FN)Minimizar falsos negativos (enfermedades, seguridad)
F1-Score2·(P·R)/(P+R)Balance Precision-Recall, clases desbalanceadas
AUC-ROCÁrea bajo curva ROCEvaluación global del clasificador
MCCCorrelación de MatthewsDatasets muy desbalanceados

Métricas de regresión

MétricaDescripciónSensible a outliers
MAE — Error Absoluto MedioPromedio de |y − ŷ|No
MSE — Error Cuadrático MedioPromedio de (y − ŷ)²
RMSE — Raíz del MSE√MSE, mismas unidades que y
— Coeficiente de determinaciónVarianza explicada por el modelo [0,1]Moderado
MAPE — Error porcentual absoluto medioPromedio de |y−ŷ|/|y| · 100%No

Curvas de evaluación

Overfitting, Underfitting y Regularización

Overfitting (Sobreajuste)
El modelo memoriza los datos de entrenamiento y generaliza mal.
Síntoma: Error train bajo, error val/test alto.
Bias bajo, Varianza alta.
Underfitting (Subajuste)
El modelo es demasiado simple para capturar el patrón.
Síntoma: Error train alto, error val también alto.
Bias alto, Varianza baja.

Trade-off Bias–Varianza

Error total = Bias² + Varianza + Ruido irreducible

El objetivo es encontrar el punto óptimo de complejidad del modelo donde el error de generalización es mínimo.

Técnicas contra el overfitting

TécnicaDescripciónAplicable en
Regularización L1 (Lasso)Penaliza |w|. Produce sparsity (pone pesos a cero).Regresión, redes neuronales
Regularización L2 (Ridge)Penaliza w². Reduce pesos pero no los elimina.Regresión, redes neuronales
Elastic NetCombinación de L1 y L2.Regresión
DropoutDesactiva aleatoriamente neuronas durante entrenamiento.Redes neuronales
Early StoppingDetiene el entrenamiento cuando val loss deja de mejorar.Redes neuronales, GBM
Data AugmentationGenera variaciones artificiales de los datos de entrenamiento.Imágenes, texto
Reducir complejidadMenos capas/neuronas, menor profundidad del árbol.Todos
Más datosLa solución más efectiva cuando es posible.Todos

Redes Neuronales y Deep Learning

Perceptrón y Red Neuronal Artificial (ANN)

Arquitecturas de Deep Learning

ArquitecturaTipoUso principal en SW
CNN — Red convolucionalVisión por computadorDetección de patrones en interfaces, capturas
RNN / LSTM / GRUSecuencias temporalesAnálisis de logs, predicción de series temporales
TransformerNLP, códigoGeneración de código, comprensión de requisitos, chatbots
AutoencoderRepresentación / anomalíasDetección de anomalías en métricas de sistema
GANGeneraciónGeneración de datos sintéticos de prueba
Graph NN (GNN)GrafosAnálisis de dependencias en código

Transformers y LLMs (especialmente relevantes en SW)

Transfer Learning: reutilizar un modelo preentrenado en una tarea grande (p. ej., texto general) y adaptarlo a una tarea específica (p. ej., detección de vulnerabilidades). Reduce drásticamente el coste de entrenamiento y los datos necesarios.

ML aplicado a fases del desarrollo de software

Análisis de requisitos

Diseño y arquitectura

Planificación y estimación

Implementación (codificación)

Pruebas (Testing)

Documentación

DevOps y operaciones

Herramientas y frameworks principales

CategoríaHerramientaUso principal
ML clásicoscikit-learnAlgoritmos clásicos, pipelines, evaluación
XGBoost / LightGBMGradient boosting de alta eficiencia
statsmodelsModelos estadísticos, series temporales
Deep LearningPyTorchInvestigación, flexibilidad, redes neuronales
TensorFlow / KerasProducción, despliegue móvil/edge
Hugging Face TransformersLLMs, NLP, modelos preentrenados
DatosPandas / NumPyManipulación y análisis de datos
Apache Spark / PySparkProcesamiento distribuido de big data
MLOpsMLflowTracking de experimentos, registro de modelos
Kubeflow / Vertex AIPipelines ML en Kubernetes / GCP
DVCVersionado de datos y modelos
MonitorizaciónEvidently AIDetección de data drift, informes de modelo
Prometheus + GrafanaMétricas de sistema y modelo en producción
VisualizaciónMatplotlib / Seaborn / PlotlyExploración y comunicación de datos
AutoMLAutoSklearn / H2O / Google AutoMLSelección automática de algoritmo e hiperparámetros

MLOps: ML en producción

MLOps extiende los principios de DevOps al ciclo de vida del ML, asegurando reproducibilidad, escalabilidad y monitorización continua.

Conceptos avanzados clave

Explicabilidad e interpretabilidad (XAI)

Desbalanceo de clases

Selección de hiperparámetros

Ensemble methods

Fairness y sesgo en ML

AutoML

Automatiza la selección de algoritmos, preprocesado e hiperparámetros. Permite a no-expertos construir modelos competitivos.

Federated Learning

Online Learning vs. Batch Learning

AspectoBatch LearningOnline Learning
EntrenamientoCon todo el dataset de una vezCon cada nuevo dato o mini-batch
AdaptaciónRequiere reentrenamiento completoSe adapta continuamente
RecursosAlto coste puntualBajo coste continuo
UsoMayoría de proyectosSistemas de recomendación, detección de fraude en tiempo real
Conceptos adicionales para el examen: