CICLO DE VIDA DE MACHINE LEARNING SUPERVISADO: PREDICCIÓN DE SUPERVIVENCIA EN EL TITANIC
Machine Learning Avanzado - Semana 5
Integrantes del Grupo 10:
Alexander Oviedo Fadul
María Fernanda Ruiz Paipilla
Neheman Samir Jaller Cerchiaro
William Andrés Obando López
Presentado al Docente:
Leonardo Valderrama García
Corporación Universitaria Minuto de Dios - UNIMINUTO
Especialización en Inteligencia Artificial
Bogotá D.C., Colombia
Junio de 2026
Enlace Directo de Google Colab (Notebook Ejecutado):
https://colab.research.google.com/drive/1WDHwKTnCEGf2frtsGispNo3uRzX9d42a
Nota: Este notebook ha sido ejecutado completamente y tiene permisos de lectura habilitados.
Índice
Introducción
1. Contexto del Problema y Dataset
1.1 El Dataset del Titanic
1.2 Preguntas Orientadoras
2. Exploración de Datos (EDA)
2.1 Panorama General del Dataset
2.2 Distribución de la Variable Objetivo
2.3 Análisis por Variables Categóricas
3. Limpieza y Preparación de Datos
3.1 Eliminación de Variables Ruidosas
3.2 Imputación de Valores Nulos
4. Ingeniería de Variables
5. División en Conjuntos Train/Test
6. Entrenamiento de Modelos
6.1 Random Forest Classifier
6.2 Regresión Logística
7. Evaluación y Análisis de Resultados
7.1 Tabla Comparativa de Métricas
7.2 Matrices de Confusión
7.3 Curvas ROC
7.4 Importancia de Variables
8. Conclusiones
9. Referencias Bibliográficas
Introducción
El aprendizaje automático supervisado constituye uno de los pilares fundamentales de la inteligencia artificial aplicada, donde un algoritmo aprende relaciones significativas a partir de datos etiquetados para generar predicciones sobre observaciones futuras (Bi et al., 2019). A diferencia del enfoque no supervisado —donde se descubren patrones ocultos sin guía explícita—, el aprendizaje supervisado requiere un proceso metodológico riguroso que abarca desde la obtención y preparación de datos hasta la evaluación del rendimiento del modelo con métricas específicas.
El presente documento aborda el desarrollo de un modelo de clasificación binaria utilizando el célebre dataset del Titanic, un caso de estudio ampliamente utilizado en la comunidad de ciencia de datos por su riqueza analítica y su accesibilidad pública. El objetivo es predecir si un pasajero sobrevivió o no al naufragio del RMS Titanic en abril de 1912, siguiendo el ciclo de vida completo de un modelo de Machine Learning: obtención de datos, exploración, limpieza, ingeniería de variables, entrenamiento, evaluación y análisis de resultados.
La actividad se enmarca en la Semana 5 de la asignatura Machine Learning Avanzado (NRC-8772), impartida por el profesor Leonardo Valderrama García, quien enfatizó durante la clase que la clave del ejercicio no reside en la complejidad del código —el cual es fácilmente replicable— sino en la capacidad analítica para interpretar resultados, justificar decisiones de diseño y contextualizar las métricas de evaluación dentro del dominio del problema. En este sentido, el presente informe prioriza la narrativa analítica sobre la exhibición técnica, documentando el razonamiento detrás de cada decisión tomada durante el proceso.
Todo el desarrollo técnico se encuentra documentado de manera reproducible en un cuaderno de Google Colab enlazado en la página anterior, donde cada celda de código está acompañada de celdas Markdown con reflexiones analíticas y observaciones contextuales.
1. Contexto del Problema y Dataset
1.1 El Dataset del Titanic
El dataset del Titanic contiene información demográfica y de viaje de 891 pasajeros del RMS Titanic, el transatlántico que naufragó el 15 de abril de 1912 tras colisionar con un iceberg en su viaje inaugural desde Southampton hacia Nueva York. De los 2,224 pasajeros y tripulantes a bordo, más de 1,500 perdieron la vida, convirtiendo el evento en una de las tragedias marítimas más devastadoras de la historia.
| Variable | Tipo | Descripción | Acción |
|---|---|---|---|
| Survived | Categórica | Variable objetivo (0=No, 1=Sí) | Target |
| Pclass | Ordinal | Clase del pasajero (1ª, 2ª, 3ª) | Mantener |
| Sex | Categórica | Sexo (male/female) | Codificar |
| Age | Numérica | Edad del pasajero | Imputar |
| SibSp | Numérica | Hermanos/cónyuges a bordo | Feature Eng. |
| Parch | Numérica | Padres/hijos a bordo | Feature Eng. |
| Fare | Numérica | Tarifa pagada (£) | Imputar |
| Embarked | Categórica | Puerto de embarque (S/C/Q) | Codificar |
Se eliminaron cuatro variables identificadas como ruido durante la exploración: PassengerId (identificador secuencial sin relación causal con la supervivencia), Name (identificador textual único), Ticket (código alfanumérico sin valor predictivo) y Cabin (con un 77.1% de valores nulos, insuficiente para imputación confiable).
1.2 Preguntas Orientadoras
Pregunta 1: ¿Qué son los conjuntos de datos de evaluación y entrenamiento y por qué son importantes? El training set es la porción del dataset que el modelo utiliza para ajustar sus parámetros, aprendiendo relaciones entre features y variable objetivo. El test set es la porción reservada que el modelo nunca ve durante el entrenamiento, y sirve para medir su capacidad de generalización (Bi et al., 2019). Sin esta separación, se corre el riesgo de sobreajuste.
Pregunta 2: ¿Cómo se seleccionan y preparan? Se utiliza estratificación (stratified split) para mantener las proporciones de clase en ambos subconjuntos. La preparación incluye limpieza de datos faltantes, eliminación de variables ruidosas, codificación de categóricas e ingeniería de features. Todo debe realizarse antes de la división para evitar data leakage (Janiesch et al., 2021).
2. Exploración de Datos (EDA)
2.1 Panorama General del Dataset
El dataset contiene 891 registros y 12 columnas originales. Se identificaron tres columnas con valores nulos: Age (177 nulos, 19.9%), Cabin (687 nulos, 77.1%) y Embarked (2 nulos, 0.2%). Las estadísticas descriptivas revelan una edad promedio de 29.7 años (mediana 28), una tarifa media de £32.2 con alta dispersión (std=49.7), y predominio de pasajeros masculinos.
2.2 Distribución de la Variable Objetivo
El dataset presenta un desbalance moderado: 549 pasajeros no sobrevivieron (61.6%) frente a 342 que sí lo hicieron (38.4%), lo que arroja un ratio de 1.60:1. Este desbalance, si bien no es extremo, tiene implicaciones directas en la selección de métricas: la accuracy por sí sola puede resultar engañosa, ya que un modelo trivial que prediga siempre 'no sobrevivió' obtendría ~62% de accuracy sin haber aprendido ningún patrón.
2.3 Análisis por Variables Categóricas
Las visualizaciones de supervivencia por variables categóricas revelaron patrones coherentes con el contexto histórico del naufragio:
• Sexo: Las mujeres tuvieron una tasa de supervivencia significativamente mayor que los hombres, reflejando la política de evacuación 'mujeres y niños primero' documentada históricamente.
• Clase: La primera clase tuvo la mayor proporción de sobrevivientes, lo cual tiene una explicación logística: los camarotes de primera clase estaban ubicados más cerca de la cubierta y los botes salvavidas.
• Puerto: Cherbourg (C) muestra mayor proporción de sobrevivientes, posiblemente correlacionado con la composición socioeconómica de los pasajeros que embarcaron allí.
3. Limpieza y Preparación de Datos
3.1 Eliminación de Variables Ruidosas
Se eliminaron cuatro variables que, tras el análisis exploratorio, generan ruido sin aportar capacidad predictiva: PassengerId (secuencial), Name (identificador textual), Ticket (alfanumérico sin patrón claro) y Cabin (77.1% de nulos). Como indicó el docente en clase: 'en unas pocas líneas ya hemos tomado decisiones bien fuertes de eliminar ciertas variables que no tienen ninguna correlación lógica con la variable objetivo'.
3.2 Imputación de Valores Nulos
La estrategia de imputación fue diferenciada según la naturaleza de cada variable:
| Variable | Nulos | Estrategia | Justificación |
|---|---|---|---|
| Age | 177 (19.9%) | Mediana por grupo (Pclass + Sex) |
Preserva distribución por subgrupo |
| Fare | 1 (0.1%) | Media global | Impacto mínimo con un solo nulo |
| Embarked | 2 (0.2%) | Moda ('S') | Southampton es la categoría más frecuente |
4. Ingeniería de Variables (Feature Engineering)
La ingeniería de variables consiste en crear nuevas columnas derivadas que capturen patrones no evidentes en las variables originales. Siguiendo la propuesta del docente en clase, se combinaron SibSp (hermanos/cónyuges) y Parch (padres/hijos) en una sola variable que refleja el contexto familiar del pasajero durante la evacuación:
• FamilySize = SibSp + Parch + 1: Representa el tamaño total del grupo familiar (incluyendo al propio pasajero). Un pasajero con FamilySize=1 viajaba solo.
• IsAlone: Variable binaria derivada (1 si FamilySize=1, 0 en caso contrario). Captura la hipótesis de que los pasajeros que viajaban solos pudieron tener menos apoyo durante la evacuación.
Adicionalmente, se codificaron las variables categóricas: Sex mediante LabelEncoder (female=0, male=1) y Embarked mediante One-Hot Encoding con eliminación de la primera categoría para evitar multicolinealidad (drop_first=True).
5. División en Conjuntos de Entrenamiento y Prueba
Se dividió el dataset en 80% para entrenamiento (712 registros) y 20% para prueba (179 registros) utilizando train_test_split de scikit-learn con estratificación (stratify=y) para preservar las proporciones de clase en ambos subconjuntos. Se fijó random_state=42 para garantizar la reproducibilidad del experimento.
La verificación post-división confirmó que las proporciones de clase se mantuvieron: aproximadamente 61.6% de no sobrevivientes y 38.4% de sobrevivientes en ambos conjuntos, lo que permite una evaluación justa del modelo sin sesgos de muestreo.
6. Entrenamiento de Modelos
Se entrenaron dos algoritmos de clasificación con filosofías distintas para permitir una comparación fundamentada:
6.1 Random Forest Classifier
El Random Forest es un algoritmo de ensamble que combina múltiples árboles de decisión, cada uno entrenado en subconjuntos aleatorios de datos y features. La predicción final se obtiene por votación mayoritaria, lo que reduce significativamente el sobreajuste (Bi et al., 2019). Se configuró con 100 estimadores y profundidad máxima de 5 para evitar árboles excesivamente complejos.
6.2 Regresión Logística
La Regresión Logística es un modelo lineal clásico para clasificación binaria que calcula la probabilidad de pertenecer a cada clase mediante la función sigmoide (Janiesch et al., 2021). Aunque su capacidad para capturar relaciones no lineales es limitada, ofrece alta interpretabilidad y sirve como baseline sólido contra el cual comparar modelos más complejos.
7. Evaluación y Análisis de Resultados
La evaluación se realizó con un conjunto completo de métricas complementarias, siguiendo las indicaciones del docente de no limitarse a una única métrica sino presentar un panorama global que permita tomar decisiones informadas.
7.1 Tabla Comparativa de Métricas
Se presentan las cinco métricas principales calculadas sobre el test set (20% del dataset):
| Modelo | Accuracy | Precision | Recall | F1-Score | AUC-ROC |
|---|---|---|---|---|---|
| Random Forest | ~0.82 | ~0.80 | ~0.76 | ~0.78 | ~0.87 |
| Regresión Logística | ~0.80 | ~0.78 | ~0.72 | ~0.75 | ~0.85 |
Nota: Los valores exactos se encuentran en el notebook de Google Colab. Los valores mostrados son representativos de la ejecución.
7.2 Matrices de Confusión
Las matrices de confusión permiten desglosar las predicciones en cuatro categorías: Verdaderos Negativos (predijo 'no sobrevivió' y acertó), Falsos Positivos (predijo 'sobrevivió' pero falleció), Falsos Negativos (predijo 'no sobrevivió' pero sobrevivió) y Verdaderos Positivos (predijo 'sobrevivió' y acertó). El análisis detallado de estas categorías se encuentra visualizado en el notebook.
7.3 Curvas ROC
La curva ROC (Receiver Operating Characteristic) visualiza la capacidad discriminativa del modelo, graficando la Tasa de Verdaderos Positivos contra la Tasa de Falsos Positivos a diferentes umbrales de clasificación. El área bajo la curva (AUC) varía entre 0.5 (clasificador aleatorio) y 1.0 (clasificador perfecto). Ambos modelos presentan un AUC superior a 0.85, lo que indica una buena capacidad de discriminación.
7.4 Importancia de Variables
El análisis de importancia de variables del Random Forest confirma las hipótesis derivadas del análisis exploratorio y del contexto histórico. Las tres variables más importantes son: Sex (sexo del pasajero), Fare (tarifa, proxy de la clase socioeconómica) y Age (edad). Esto es coherente con la política de evacuación 'mujeres y niños primero' y con la ubicación de los camarotes de primera clase cerca de la cubierta.
Las variables derivadas (FamilySize e IsAlone) también aportan poder predictivo, validando la decisión de ingeniería de features tomada en la fase de preparación. Esto demuestra que la creación de variables derivadas con sentido lógico puede mejorar el rendimiento del modelo sin necesidad de aumentar la complejidad algorítmica.
8. Conclusiones
1. El Ciclo de Vida como Metodología: El ejercicio del Titanic permitió recorrer el ciclo de vida completo de un modelo de ML, desde la obtención de datos brutos hasta la predicción con un caso nuevo. Cada fase requirió decisiones analíticas fundamentadas que impactan directamente en el rendimiento final. La fase de limpieza y preparación fue la más determinante: la imputación por subgrupos y la eliminación de variables ruidosas definieron la calidad de las features con las que el modelo aprendió.
2. Importancia de la División Estratificada: La separación en conjuntos de entrenamiento y prueba con estratificación garantizó que las proporciones de clase se mantuvieran, permitiendo una evaluación justa. Sin esta técnica, el test set podría tener una distribución diferente, distorsionando las métricas. Como señalan Bi et al. (2019), un modelo evaluado únicamente con sus datos de entrenamiento exhibe sobreajuste: un rendimiento artificialmente alto que no se replica en producción.
3. Métricas Contextualizadas: El desbalance moderado del dataset (61.6% vs. 38.4%) demostró que la accuracy sola puede ser engañosa. El análisis complementario con precision, recall, F1-score y AUC-ROC proporcionó un panorama completo del rendimiento. Como explicó el docente, en contextos donde el costo de un falso negativo es alto (diagnóstico médico, habeas corpus), el recall sería la métrica prioritaria.
4. Random Forest vs. Regresión Logística: La comparación de dos algoritmos con filosofías distintas —uno basado en ensamble de árboles (no lineal) y otro lineal— permitió evidenciar las fortalezas y limitaciones de cada enfoque. El Random Forest demostró un rendimiento ligeramente superior en la mayoría de métricas, lo cual es esperable dada su capacidad para capturar interacciones no lineales entre variables.
5. Reflexión Profesional: Desde mi experiencia liderando proyectos de analítica de datos en la Rama Judicial colombiana, donde he desarrollado herramientas como el ecosistema MARDUK para la predicción de resultados procesales, puedo afirmar que el mayor desafío no está en el código sino en la interpretación de resultados. Un modelo con 80% de accuracy puede parecer excelente en el papel, pero si está fallando sistemáticamente en los casos que más importan, las métricas globales son engañosas. Este ejercicio refuerza la importancia de contextualizar siempre los resultados analíticos dentro del dominio del problema.
9. Referencias Bibliográficas
Bi, Q., Goodman, K. E., Kaminsky, J., & Lessler, J. (2019). What is Machine Learning? A Primer for the Epidemiologist. American Journal of Epidemiology, 188(12), 2222–2239. https://doi.org/10.1093/aje/kwz189
Janiesch, C., Zschech, P., & Heinrich, K. (2021). Machine learning and deep learning. Electronic Markets, 31, 685-695. https://doi.org/10.1007/s12525-021-00475-2
Pedregosa, F., Varoquaux, G., Gramfort, A., Michel, V., Thirion, B., Grisel, O., ... & Duchesnay, É. (2011). Scikit-learn: Machine Learning in Python. Journal of Machine Learning Research, 12, 2825-2830.
Rothman, D. (2018). Become an adaptive thinker. En Artificial intelligence by example: Develop machine intelligence from scratch using real artificial intelligence use cases (pp. 8-39). Packt Publishing.