Ingeniería Civil · 2025
Optimización De Modelos Basados En Árboles De Decisión Para La Interpolación De Precipitación : Comparación Con Métodos Tradicionales Y Exploración De Aprendizaje Por Transferencia. Trabajo de grado
RESUMEN : La predicción y la interpolación de datos hidrológicos son aspectos cruciales para una gestión eficiente de los recursos hídricos, especialmente en un contexto de cambio climático y creciente variabilidad en los patrones de precipitación. Este trabajo presenta un análisis detallado de la optimización de modelos basados en árboles de decisión, específicamente Random Forest, en la interpolación de datos de precipitación, comparándolos con métodos tradicionales como la Interpolación Inversa Ponderada por Distancia (IDW) y Spline. Aunque estos enfoques convencionales han demostrado ser útiles, presentan limitaciones significativas en la captura de eventos extremos y en escenarios con alta variabilidad climática. A lo largo de esta investigación, se exploraron técnicas avanzadas de machine learning y optimización para mejorar la precisión de los modelos predictivos. Además, se evaluó el potencial del aprendizaje por transferencia como una herramienta complementaria para refinar la interpolación en contextos con datos limitados. Mediante un riguroso proceso de validación y análisis comparativo, se observó que los enfoques optimizados, como Random Forest con ajustes específicos, superan a los métodos tradicionales, particularmente en la predicción de eventos extremos y en la gestión de datos faltantes. Los resultados obtenidos no solo revelan mejoras en la precisión de las predicciones, sino que también destacan la importancia de implementar modelos adaptativos y robustos para la gestión hídrica en condiciones de incertidumbre. Este estudio proporciona una base sólida para futuras investigaciones en la optimización y transferencia de modelos en el campo de la hidrología.
Texto completo 66 páginas con texto
Leer la tesis completa Ficha en el repositorio
Contenido
- RESUMENp. 9
- ABSTRACTp. 10
- INTRODUCCIÓNp. 11
- 1.1 MOTIVACIÓNp. 12
- 1.2 ESTADO DEL ARTEp. 12
- 1.2.1 Métodos Tradicionales de Interpolación Hidrológicap. 13
- 1.2.2 Modelos Actuales e Híbridos en la Predicción Hidrológicosp. 14
- 2. MARCO TEÓRICOp. 15
- 2.1 INTERPOLACIÓN DE DATOS EN HIDROLOGÍAp. 15
- 2.1.1 Predicción Hidrológicap. 16
- 2.2 JUSTIFICACIÓN DEL USO DE MACHINE LEARNING EN HIDROLOGÍAp. 16
- 2.2.1 Descomposición de Series Temporales en Hidrologíap. 17
- 3. METODOLOGÍAp. 18
- 3.1 PROCEDIMIENTOS DE INTERPOLACIÓN Y OPTIMIZACIÓN DE MODELOS HIDROLÓGICOSp. 18
- 3.1.1 Interpolación de datos faltantesp. 18
- 3.1.2 Optimización de Random Forestp. 18
- 3.1.3 Implementación y Validaciónp. 19
- 3.2 INTRODUCCIÓN A MACHINE LEARNING Y USO DE PYTHONp. 19
- 3.2.1 Conceptos clave de Machine Learningp. 19
- 3.2.2 Uso de Python y libreríasp. 20
- 3.3 EVALUACIÓN DE DESEMPEÑO EN MODELOS DE MACHINE LEARNINGp. 20
- 3.3.1 Métricas de Desempeño y Precisiónp. 20
- 3.3.2 Análisis Visual como Herramienta Complementariap. 21
- 3.4 POBLACIÓN Y MUESTRAp. 21
- 3.4.1 Procedimiento de Carga de los Datosp. 22
- 3.5 VERIFICACIÓN DEL DESEMPEÑO DE LOS MODELOSp. 22
- 3.5.1 Métricas Estadísticas para la Verificación del Modelop. 23
- 3.5.2 Justificación de la Validación Manualp. 23
- 3.5.3 Selección de Fechas Representativas y Exclusión de Datosp. 23
- 3.5.4 Evaluación Individual del Modelo y Selección de Casos Representativosp. 24
- 3.5.5 Cálculo de Promedios y Análisis Global de la Robustez del Modelop. 25
- 4. INICIO Y PROCESAMIENTO DE DATOSp. 26
- 4.1 TRATAMIENTO DE FECHASp. 26
- 4.1.1 Establecimiento de la Fecha como Índicep. 26
- 4.1.2 Inspección Inicial de los Datosp. 27
- 4.2 GRÁFICO Y DESCOMPOSICIÓN TEMPORAL DE LA PRECIPITACIÓNp. 27
- 4.2.1 Descomposición Estacional de la Serie Temporalp. 29
- 5. PRUEBA DE ESTACIONALIDADp. 30
- 5.1 APLICACIÓN DE LA PRUEBA ADFp. 30
- 6. MODELO TRADICIONAL: IDWp. 31
- 6.1 VISUALIZACIÓN PRELIMINAR EN LA SERIE DE DATOSp. 31
- 6.2 VALIDACIÓN DEL MODELOp. 32
- 6.2.1 Extracción de fechas de validaciónp. 33
- 6.2.2 Análisis de Casos Significativosp. 35
- 6.2.3 Desempeño por categoría y conclusionesp. 35
- 6.2.4 Resumen de resultadosp. 36
- 7. MODELO TRADICIONAL: SPLINEp. 38
- 7.1 IMPLEMENTACIÓN Y EVALUACIÓN DEL MODELO BASE SPLINEp. 38
- 7.1.1 Entrenamiento del Modelop. 38
- 7.1.2 Visualización Preliminar del Modelop. 39
- 7.1.3 Análisis de Casos Significativosp. 35
- 7.1.4 Desempeño Por Categoría Y Conclusionesp. 35
- 7.1.5 Resumen de Resultadosp. 36
- 8. SELECCIÓN DEL MODELO TRADICIONAL REPRESENTATIVOp. 42
- 8.1 COMPARACIÓN DE DESEMPEÑO ENTRE IDW Y SPLINEp. 42
- 8.1.1 Justificación para seleccionar al modelo Splinep. 42
- 9. MODELO BASE: RANDOM FORESTp. 43
- 9.1 IMPLEMENTACIÓN Y EVALUACIÓN DEL MODELO BASE: RANDOM FORESTp. 43
- 9.1.1 Entrenamiento Del Modelop. 38
- 9.1.2 Visualización Preliminar del Modelop. 39
- 9.1.3 Análisis de Casos Significativosp. 35
- 9.1.4 Desempeño por categoría y resultadosp. 46
- 10. MODELO OPTIMIZADO: RANDOM FORESTp. 47
- 10.1 IMPLEMENTACIÓN Y EVALUACIÓN DEL MODELO OPTIMIZADO: RANDOM FORESTp. 47
- 10.1.1 Justificación de las Optimizacionesp. 47
- 10.1.2 Visualización preliminar del modelo Optimizadop. 48
- 10.1.3 Análisis de Casos Significativosp. 35
- 10.1.4 Desempeño Por Categoría Y Conclusionesp. 35
- 10.1.5 Resumen de Resultados Modelo Optimizadop. 50
- 10.2 APRENDIZAJE POR TRANSFERENCIA EN MACHINE LEARNINGp. 51
- 10.2.1 Comparación y Transferibilidad en Modelos Basados en Árboles de Decisiónp. 51
- 11. MODELO BASE: XGBOOSTp. 52
- 11.1 IMPLEMENTACIÓN Y EVALUACIÓN DEL MODELO BASE XGBOOSTp. 52
- 12.1.1 Entrenamiento Del Modelop. 38
- 11.1.2 Visualización Preliminar del Modelop. 39
- 11.1.3 Análisis de Casos Significativosp. 35
- 11.1.4 Desempeño por categoría y conclusionesp. 35
- 12. OPTIMIZACIÓN TRANSFERIBLE: CASO XGBOOSTp. 55
- 12.1 ENFOQUE SECUNDARIOp. 55
- 12.2 MODELO OPTIMIZADO XGBOOSTp. 55
- 12.2.1 Entrenamiento Del Modelo Optimizadop. 55
- 12.2.2 Visualización Preliminar del Modelo Optimizadop. 48
- 12.2.3 Análisis de Casos Significativosp. 35
- 12.2.4 Desempeño por categoría y conclusionesp. 35
- 12.2.5 Resumen de Resultados del Modelo Optimizadop. 58
- 13. POTENCIAL DE LA TRANSFERIBILIDAD DE OPTIMIZACIONESp. 60
- 13.1 TRANSFERIBILIDAD Y ADAPTACIÓN EN MODELOS BASADOS EN BOOSTINGp. 60
- 13.1.1 Impacto de las Optimizaciones en Otros Modelos de Ensamblep. 60
- 13.1.2 Oportunidades de Investigaciones Futurasp. 61
- 13.1.3 Limitaciones y Desafíos en la Transferibilidadp. 61
- 13.1.4 Conclusión sobre Transferibilidad de Optimizacionesp. 61
- 14. CONCLUSIONES DE LA INVESTIGACIÓNp. 62
- 14.1 EVALUACIÓN INTEGRAL DE LA OPTIMIZACIÓN E INTERPOLACIÓN EN HIDROLOGÍAp. 62
- 14.1.1 Eficiencia en la Interpolación de Datos Hidrológicosp. 64
- 14.1.2 Comparación con Métodos Tradicionales en la Interpolación Hidrológicap. 64
- 14.1.3 Optimización e Interpolación de Eventos Extremosp. 64
- 14.1.4 Transferibilidad de Optimizaciones entre Modelosp. 65
- 14.1.5 Oportunidades Futuras en la Gestión de Recursos Hídricosp. 65
- Tabla 1: Clasificación de precipitaciones según categoría de lluvia (Elaboració propia)p. 24
- Tabla 2: Inspección de las primeras cinco filas del DataFrame (Lenguaje Python)p. 27
- Tabla 3: Predicción y error en eventos representativos de precipitación (Lenguaje Python)p. 34
- Tabla 4: Casos representativos con mejor y peor rendimiento de IDW (Lenguaje Python)p. 35
- Tabla 5: Promedio de desempeño IDW por categoría (Elaboración propia)p. 36
- Tabla 6: Comparación de casos significativos para el modelo Spline (Elaboración propia)p. 40
- Tabla 7: Promedio de desempeño del modelo Spline por categoría (Elaboración propia)p. 40
- Tabla 8: Casos significativos del modelo Random Forest. (Elaboración propia con Python)p. 45
- Tabla 9: Desempeño Random Forest por categoría (Elaboración propia)p. 46
- Tabla 11: Desempeño Random Forest Optimizado por categoría (Elaboración propia)p. 50
- Tabla 12: Desempeño del modelo XGBoost por casos Significativos (Elaboración propia)p. 54
- Tabla 13: Desempeño XGBoost por categoría (Elaboración propia)p. 54
- Tabla 14: Desempeño XGBoost Optimizado por Casos Extremos (Elaboració propia)p. 57
- Tabla 15: Desempeño XGBoost Optimizado por categoría (Elaboración propia)p. 58
- Tabla 16: Comparación de RMSE por modelo y categoría de lluvia (Elaboración propia)p. 62
- Tabla 17: Evaluación Final de Modelos por Criterios (Elaboración propia)p. 63
- Código 1: Descomposición de una serie temporal (Lenguaje Python)p. 17
- Código 2: Carga de datos desde CSV (Lenguaje Python)p. 22
- Código 3: Conversión de la columna de fechas a tipo datetime (Lenguaje Python)p. 26
- Código 4: Establecer la columna 'Fecha' como índice (Lenguaje Python)p. 27
- Código 5: Aplicación de la prueba ADF para analizar la estacionariedad (Lenguaje Python)p. 30
- Código 6: Preparación de datos para el método IDW (Lenguaje Python)p. 31
- Código 7: Algoritmo de Interpolación Ponderada Inversa a la Distancia (Lenguaje Python)p. 32
- Código 8: Extracción de fechas de validación (Lenguaje Python)p. 33
- Código 9: Validación de predicciones eliminando fechas clave (Lenguaje Python)p. 33
- Código 11: Spline con suavización s=35000sp. 39
- Código 12: Proceso de entrenamiento del modelo Random Forest (Lenguaje Python)p. 44
- Código 13: Implementación de media móvil y entrenamiento del modelo (Lenguaje Python)p. 48
- Código 14: Entrenamiento del modelo XGBoost (Elaboración propia con Python)p. 52
- Código 15: Código XGBoost con optimizaciones (Lenguaje Python)p. 56
- Figura 1:Tendencia de la precipitación diaria (Elaboración propia con Python)p. 28
- Figura 2: Descomposición estacional de la serie (Elaboración propia con Python)p. 29
- Figura 3: Visualización preliminar del modelo IDW (Elaboración propia con Python)p. 31
- Figura 4: Relación entre el parámetro S y el Error Cuadrático Medio (Lenguaje Python)p. 38
- Figura 6: Modelo Base - Random Forest en toda la serie (Elaboración propia con Python)p. 45
- Figura 7: Modelo Optimizado - Random Forest en toda la seriep. 48
- Figura 8: Modelo Optimizado - XGBoost en toda la serie (Elaboración propia con Python)p. 53
- Figura 9: Modelo Optimizado - XGBoost en toda la serie (Elaboración propia con Python)p. 56