Full text
Equation Chapter 1 Section 1 Trabajo Fin de Grado en Ingeniería de las Tecnologías de Telecomunicación Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial Autor: José Alfonso Carpio de la Fuente Tutor: Francisco José Simois Tirado Dpto. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2025
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial ii
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial iii Trabajo Fin de Grado en Ingeniería de las Tecnologías de Telecomunicación Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial Autor: José Alfonso Carpio de la Fuente Tutor: Francisco José Simois Tirado Dpto. de Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2025
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial iv
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial v Trabajo Fin de Grado: Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial Autor: José Alfonso Carpio de la Fuente Tutor: Francisco José Simois Tirado El tribunal nombrado para juzgar el Proyecto arriba indicado, compuesto por los siguientes miembros: Presidente: Vocales: Secretario: Acuerdan otorgarle la calificación de: Sevilla, 2024 El Secretario del Tribunal
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial vi Agradecimientos Agradecer en primer lugar a mi familia, en especial a mis padres por apoyarme en todo este recorrido y darme siempre apoyo, a mi novia y compañeros por estar ahí en los momentos más difíciles y por último a mis profesores por conseguir que me apasione lo que hago. Gracias. José Alfonso Carpio de la Fuente.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial vii
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial viii Resumen En este Trabajo de Fin de Grado se abordará el problema de predicción de la probabilidad de inundaciones en distintas regiones utilizando técnicas de aprendizaje automático. Para ello se ha trabajado con un dataset extraído de la plataforma Kaggle que contiene más de un millón de muestras etiquetadas con 21 variables relacionadas con factores de riesgo. Se han implementado y comparado tres algoritmos principales: K-Nearest Neighbors (KNN), Random Forest (basado en Decision Trees) y Adaboost. Además, se ha realizado un análisis exploratorio de los datos (EDA) para ver la naturaleza y comportamiento de los mismos y una selección de características y ajuste de hiperparámetros mediante técnicas como RFE y GridSearchCV. El número de muestras usado implica obtener mejor o peores resultados, haciendo que cuando se usan todas las muestras se obtengan mucho mejores resultados que al usar un número acotado de estas obtenidos por RFE. Era algo de esperar ya que al tener más información nuestra predicción iba a ser más exacta. En cuanto al uso de los diferentes algoritmos, encontramos que el algoritmo a priori más sencillo, en este caso el KNN, es el más completo basándonos en las paramétricas usadas para las evaluaciones. No obstante, solo valorando el tema de la paramétrica principal (R²) se obtendría el mejor resultado con el algoritmo más complejo, Adaboost, el único algoritmo de boosting, siendo a priori algo lógico ya que este tipo de algoritmos te aseguran un mayor rendimiento. Estos resultados demuestran el potencial del aprendizaje automático para ayudar en la detección temprana de riesgos de inundación, lo cual puede tener un impacto relevante en la prevención de desastres naturales.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial ix
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial xvi ÍNDICE DE FIGURAS Figura 2-1. División de los tipos de Inteligencia Artificial y explicación 5 Figura 2-2. Diferencia de datos estructurados vs datos no estructurados 7 Figura 2-3. Cronograma evolutivo de la IA a lo largo de los años 7 Figura 3-1. Métricas usadas en regresión 11 Figura 3-2. Ejemplo de regresión lineal 12 Figura 3-3. Ejemplo regresión logística 12 Figura 3-4. Ejemplo de Decision Tree 13 Figura 3-5. Ejemplo k-NN 14 Figura 3-6. Ejemplo de subajuste, sobreajuste y óptimo para un modelo de clasificación y regresión 16 Figura 3-7. División del conjunto de datos por el método más simple 17 Figura 3-8. Representación K-Fold 18 Figura 3-9. Matriz de confusión 19 Figura 4-1. Estructuras de redes neuronales 22 Figura 4-2. Modelo de una neurona artificial 23 Figura 4-3. Estructura RNM 24 Figura 4-4. Escalón y su derivada 25 Figura 4-5. Sigmoidea y su derivada 25 Figura 4-6. Tangente hiperbólica y su derivada 26 Figura 4-7. ReLU y su derivada 26 Figura 5-1. Representación de variables categóricas en el dataset 31 Figura 5-2. Características de alguno de las variables del dataset 32 Figura 5-3. Histogramas de las variables del dataset 33 Figura 5-4. Correlación entre variables del dataset 34 Figura 5-5. Rendimiento del modelo vs K 36 Figura 5-6. Valores reales vs predichos con línea de regresión 37 Figura 5-7. Valores reales vs predichos con línea de regresión (KNN con 9 variables) 38 Figura 5-8. Distribución de errores predichos vs reales 39 Figura 5-9. Error absoluto vs valor real 40 Figura 5-10. Predicción vs Real con línea de tendencia 42 Figura 5-11. Valores reales vs predichos con línea de regresión (con 9 variables) 43
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial xvii Figura 5-12. Distribución de errores predichos vs reales 44 Figura 5-13. Error absoluto vs Valor Real 44 Figura 5-14. Predicción real vs valor real 47 Figura 5-15. Predicción vs real (con 9 características más importantes) 48 Figura 5-16. Distribución de errores predichos vs reales 48 Figura 5-17. Error absoluto vs real 49 Figura 6-1. Predicción de los valores con el algoritmo XGBoost 54
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial xviii Notación IA Inteligencia Artificial ML Machine Learning DL Deep Learning MSE Minimum square error MAE Mean Absolute Error MBE Mean Bias Error 𝑌 𝑖 Valores reales 𝑦𝑖 Predicciones del modelo n Total de promedios 𝑋𝑖 Conjunto de entradas 𝑊𝑖𝑗 Peso sináptico 𝐻𝑖 Regla de propagación F Función de activación
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 1 1 INTRODUCCIÓN 1.1. Motivación del Proyecto La motivación de la elaboración de este proyecto reside en 3 pilares fundamentales: Primero, la Inteligencia Artificial (IA), en sus variadas formas, es un área de estudio que me resulta sumamente interesante. Su capacidad para manejar y analizar información, aprender de los datos y crear soluciones concretas en distintos campos, desde la automatización hasta las decisiones clave, me motivó a iniciar esta investigación. Esta afinidad por las áreas de la IA, como el Machine Learning y el Deep Learning, es la base de la metodología empleada en este trabajo. Segundo, el tema de la predicción de la probabilidad de inundaciones se eligió por ser un problema muy reciente con importantes efectos a nivel mundial. Las inundaciones, que son más frecuentes e intensas que antes, causan daños terribles en lo socioeconómico y en lo humano. Estos sucesos son complejos, ya que dependen de muchos factores geográficos, climáticos y humanos, lo que requiere crear herramientas predictivas avanzadas. La idea de que la Inteligencia Artificial puede dar un enfoque novedoso y sólido para mejorar la precisión y la anticipación en el manejo de estos desastres naturales influyó mucho en la elección de esta línea de investigación. Por último, este proyecto es una gran ocasión para mejorar aptitudes generales, tanto en el análisis de datos como en la programación. El trabajo requiere entender bien los datos, usar métodos computacionales avanzados y crear soluciones algorítmicas eficaces. Integrar estas habilidades en un entorno práctico y con un posible impacto claro en la seguridad y el bienestar social es una motivación más y un pilar formativo clave de este Trabajo Fin de Grado. 1.2. Objetivos del Proyecto El objetivo general de este Trabajo Fin de Grado es desarrollar y evaluar modelos predictivos de la probabilidad de inundaciones utilizando diversas técnicas de Machine Learning, con el fin de identificar el algoritmo más adecuado que ofrezca un equilibrio óptimo entre precisión, eficiencia computacional y robustez. Para alcanzar este objetivo general, se establecen los siguientes objetivos específicos: • Recopilación y Preprocesamiento de Datos: Recopilar un conjunto de datos relevante que contenga factores históricos asociados a la probabilidad de inundaciones, y realizar un preprocesamiento exhaustivo para asegurar la calidad y la idoneidad de los datos para el entrenamiento de los modelos de IA. • Selección y Adaptación de Algoritmos de Machine Learning: Identificar y adaptar algoritmos de Machine Learning supervisado, tales como K-Nearest Neighbors (KNN), Random Forest y AdaBoost, que son apropiados para problemas de regresión predictiva, justificando su elección en base a sus características y potencial rendimiento. • Entrenamiento y Optimización de Modelos: Entrenar los algoritmos seleccionados utilizando el conjunto de datos preparado. Se implementarán técnicas de optimización de hiperparámetros para cada modelo, con el objetivo de maximizar su rendimiento predictivo y asegurar la generalización. • Evaluación del Rendimiento de los Modelos: Evaluar de manera rigurosa el rendimiento de cada modelo utilizando métricas de regresión adecuadas (por ejemplo, el coeficiente de determinación R²,
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 2 el Error Absoluto Medio (MAE) y el Error Cuadrático Medio (MSE/RMSE)), comparando sus capacidades predictivas y su robustez. • Análisis Comparativo y Conclusiones: Realizar un análisis comparativo detallado entre los algoritmos implementados, considerando no solo las métricas de rendimiento, sino también el tiempo de ejecución, la complejidad computacional y la interpretabilidad, para determinar el modelo más eficaz para la predicción de la probabilidad de inundaciones 1.3. Organización de la Memoria La memoria se ha estructurado en diferentes capítulos, cada uno abordando un aspecto fundamental en el desarrollo, siguiendo una lógica secuencial que guía desde los fundamentos teóricos hasta los resultados y conclusiones obtenidos. • Capítulo 1: Introducción. Establece la motivación detrás del proyecto, define los objetivos principales y específicos, y presenta la estructura organizativa de la memoria. • Capítulo 2,3,4: Marco Teórico. Se introduce la base conceptual de la Inteligencia Artificial, el Machine Learning y el Deep Learning. Se detallan los principios fundamentales de los algoritmos seleccionados para el estudio (K-Nearest Neighbors, Random Forest y AdaBoost), así como las métricas de evaluación de modelos de regresión. • Capítulo 5: Análisis y Conclusiones. Este capítulo abarca desde la definición de la metodología a seguir hasta las conclusiones obtenidas con cada algoritmo usado. En primer lugar, se describen, la descripción del conjunto de datos, las etapas de preprocesamiento, la estrategia de partición y los procesos de entrenamiento y optimización de hiperparámetros. A continuación, se detalla el entorno de desarrollo, las herramientas empleadas y la implementación práctica de los algoritmos para la construcción de los modelos predictivos. Posteriormente, se presentan los resultados experimentales, incluyendo métricas de rendimiento, tiempos de ejecución y un análisis comparativo de los modelos, destacando sus fortalezas y debilidades. Finalmente, se exponen las principales conclusiones del estudio, se valora el cumplimiento de los objetivos y se proponen futuras líneas de investigación.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 3 2 INTELIGENCIA ARTIFICIAL, MACHINE LEARNING Y DEEP LEARNING Este capítulo abarcará una primera toma de contacto con la Inteligencia Artificial, el Aprendizaje Automático y el Aprendizaje Profundo, definiendo cada uno de estos conceptos y explicando las diferencias más notorias que existen entre ellos. Nos servirá para obtener una primera toma de contacto con este mundo. 2.1. ¿Qué es la IA, ML y DL? Este capítulo pretende abarcar una primera aproximación a la Inteligencia Artificial (IA), al Machine Learning (ML) y al Deep Learning (DL). Con ello iremos definiendo cada uno de los conceptos e iremos explicando las diferencias más distintivas que se encuentran entre ellos. Nos servirá para tener una primera aproximación a todo este mundo. En primer lugar, contextualizaremos cada uno de estos términos partiendo de qué es Big Data, ya que esta es un conjunto de datos masivo y complejo que no puede ser procesado mediante herramientas tradicionales, caracterizado por Volumen, Velocidad, Variedad, Veracidad y Valor, tal como define el modelo 5Vs. [36] La primera definición que abarcaremos será la IA o Inteligencia Artificial, es la más general de las tres, es decir, el campo del saber es más amplio y menos específico que el de las dos definiciones siguientes. La Inteligencia Artificial (IA) es un campo de estudio que se encarga de desarrollar sistemas capaces de ejecutar tareas que requieren de la inteligencia humana, como es el caso de la toma de decisiones, el reconocimiento de voz o la traducción de idiomas. Tiene su fundamento en el comportamiento humano y se puede describir como una simulación humana a través de la acción de unos algoritmos. Estos analizan el entorno para poder identificar patrones y para poder generar respuestas adaptativas. [1] El término IA fue creado por John McCarthy (1956 en la Conferencia de Dartmouth) quien lo toma como la ciencia e ingeniería para la creación de máquinas que piensan, o para ser precisos, máquinas que son capaces de realizar programas informáticos de alta complejidad, siendo así podríamos considerar que la IA es un sistema que trabaja en base a una cantidad elevada de información y que para tomar sus decisiones lo hace bajo unos criterios fundamentados en un análisis estadístico. Esto significa que no piensa, ni tampoco razona de la misma forma que lo hace un ser humano, pero optimiza sus respuestas basándose en patrones y probabilidades. En este sentido, la IA se rige como una poderosa herramienta en casi cualquier contexto donde se da la acción humana. Dicho esto, la IA ha progresado mucho y se ha ido convirtiendo en una disciplina esencial en casi cualquier contexto; esto es, cualquier ámbito donde exista la acción humana.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 4 En segundo lugar, hablaremos del ML o Aprendizaje Automático, el cual facilita que los ordenadores aprendan a partir de los datos sin necesidad de una programación directa, es decir, obedecen instrucciones al pie de la letra, estos algoritmos exploran volúmenes masivos de información para identificar tendencias y realizar pronósticos. Esto ha impulsado su implementación en diversos ámbitos, tales como los sistemas de sugerencias en plataformas digitales, asistentes virtuales entre otras. [2] Consiste en adiestrar modelos usando ejemplos pasados, conocidos como datos de entrenamiento (train). Cada vez que el algoritmo se enfrenta a una nueva situación, tiene la posibilidad de reajustar sus parámetros y afinar su exactitud en la toma de decisiones. Tal como señaló Tom Mitchell en 1997, “un sistema aprende de verdad si su eficiencia en una tarea mejora con la práctica”. Dicho de otro modo, cuanto más diverso sea el conjunto de datos que recibe durante su formación, más certero será en sus futuras estimaciones. A diferencia de otros métodos computacionales que se basan en fórmulas establecidas, los modelos de Aprendizaje Automático son flexibles y se amoldan a los cambios en los datos, volviéndolos valiosos en escenarios donde establecer reglas de forma manual o ambientes donde la información se renueva constantemente. La exactitud es uno de los indicadores más relevantes para calibrar su funcionamiento, ya que su meta es reducir al mínimo los fallos en las estimaciones. Gracias a las continuas mejoras en el procesamiento de datos, volúmenes masivos de estos y mejora de la tecnología ha crecido notablemente su uso y aplicaciones en sectores como la economía, informática o medicinas entre otros, convirtiéndose así en una herramienta clave para optimizar y automatizar procesos. Por último, tenemos el DL o Aprendizaje Profundo es una evolución sofisticada dentro del Machine Learning. Se basa en el uso de redes neuronales artificiales formadas por múltiples capas que se encargan de analizar y descifrar patrones presentes en conjuntos de datos que presentamos (de estas hablaremos más adelante). A su vez se estructuran en niveles facilitando así la identificación de conexiones entre los datos, desde lo fundamental hasta lo más complejo. [3] Una de las mayores virtudes del Deep Learning es que no necesita una selección manual de las características importantes, sino que el propio modelo las selecciona directamente de los datos, ya sea mediante fotos, textos o audios, esto hace que se necesita una gran cantidad de datos y una capacidad de cálculo enorme para su correcto funcionamiento. Hoy por hoy, el Deep Learning se ha posicionado como una de las técnicas más punteras en el mundo del Machine Learning, encontrando aplicaciones en ámbitos como el reconocimiento de voz, el procesamiento del lenguaje natural, la visión artificial y los sistemas avanzados de ayuda a la conducción. Un buen ejemplo de su aplicación es el sistema de traducción automática de Facebook, que ha llegado a efectuar cerca de 4. 5 mil millones de traducciones cada día gracias a modelos basados en Deep Learning. Sin esta tecnología, ofrecer el mismo servicio implicaría una gran inversión en personal y sería considerablemente más caro. En conclusión, el Deep Learning se ha mostrado como una herramienta clave para que avance la inteligencia artificial, logrando que los sistemas sean más precisos, flexibles y puedan crecer para gestionar cantidades ingentes de datos.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 5 Figura 2-1. División de los tipos de Inteligencia Artificial y explicación. [6] 2.2. Diferencias principales entre IA, ML y DL. Como podemos observar en la figura 2.1 tanto el ML como el DL son tipos de IA. A continuación, recogeremos una serie de características en una tabla a modo de resumen que explican algunas de las diferencias entre estos dos tipos de tecnologías. Características ML DL Tamaño de muestras Conjunto pequeño Grandes cantidades Tiempo de entrenamiento Simple, menor precisión y corto tiempo Complejo, más preciso y largo tiempo Extracción de características Requiere mayo intervención humana para corregir y aprender Aprende por sí mismo por entorno y errores pasados Rendimiento vs cantidad de datos Directamente proporcional hasta un punto donde comienza a ser al contrario Directamente proporcional, más datos mayor precisión Tipos de correlación Simples y lineales No lineales y complejas Capacidad procesamiento Puede hacerse con CPU (bajo rendimiento) Necesita GPU (alto rendimiento) Interpretabilidad Alta Baja Tabla 2-1. Comparativa entre ML y DL [4]
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 6 2.3 Inteligencia Artificial En este capítulo como comentábamos anteriormente recogeremos los aspectos más importantes de la IA o Inteligencia Artificial entrando más en detalle en temas como en que consiste realmente la IA, que tipos de IA existen hoy día, evolución histórica de la IA y las principales aplicaciones y usos que tiene o va a tener en un futuro. En este capítulo no vamos a entrar en detalle de ML o DL ya que tienen su capítulo específico en este trabajo. 2.3.1. ¿Qué es exactamente la IA o Inteligencia Artificial? La IA como bien sabemos es un tema complejo por lo que para definir qué es exactamente encontramos diversas definiciones de las cuales una de las más interesantes que se quiere compartir es “la habilidad de los ordenadores para hacer actividades que normalmente requieren inteligencia humana” Si afinamos un poco más la definición, podríamos decir que la IA es esa habilidad que tienen las máquinas para analizar información y tomar decisiones. En conclusión, digamos que intentan copiar lo que hacemos nosotros, pero son mucho más rápidas, no se cansan y se equivocan menos. Estas tecnologías ya son capaces de llevar a cabo trabajos complicados que antes solo podíamos hacer las personas, lo cual está optimizando bastantes sectores. No obstante, hay que ir con pies de plomo con su rápido desarrollo, porque también podría traer consecuencias no deseadas. Una de las mayores ventajas es que podremos encargar a las máquinas esas tareas que son aburridas, peligrosas o demasiado enrevesadas para nosotros. Así, tendremos más tiempo y medios para dedicarnos a lo que realmente importa o a crear cosas nuevas. Hoy en día encontramos infinidad de usos en muchas áreas como la medicina, economía, matemáticas y un largo etcétera y miles de herramientas de las cuales caben destacar modelos como Chat GPT, Copilot… entre otros que entraremos más en detalle en los próximos apéndices. 2.3.2. La importancia de los datos Un tema que cabe destacar es, ¿son importantes los datos para el desarrollo de esta tecnología? La respuesta es sí. Hoy en día, las empresas más importantes son aquellas que manejan un gran volumen de datos, y no solo por el alto volumen sino por la calidad de estos. La pregunta es ¿en qué afecta esto a la IA? Pues gracias a los elevados números de datos que encontramos y recopilamos hoy día las empresas son capaces de mejorar la experiencia del usuario, un ejemplo puede ser Google o Netflix, usando las búsquedas y compras para sugerir productos o series que sean más acordes con el perfil del usuario. Gracias a esto se consigue una mayor captación de usuarios lo que se traduce a un número mayor de ingresos. Siendo así la IA un conjunto de metodologías que intentan aplicar modelos matemáticos a un conjunto de datos con el fin de realizar una acción de la mejor forma posible para obtener un resultado coherente. Todo esto se fundamenta principalmente en dos procesos siendo estos el razonamiento y el aprendizaje. El razonamiento lo podríamos definir como la capacidad de crear la respuesta más adecuada a un problema planteado a partir de los datos proporcionados. Por otro lado, el aprendizaje, es el conjunto de técnicas que dan poder a los sistemas para lidiar con problemas complejos, especialmente aquellos que carecen de una solución obvia o instrucciones fijas. Esto es de gran utilidad en áreas como el procesamiento del lenguaje (NLP) o la predicción de tendencias de
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 7 comportamiento. Dentro de este contexto, sobresalen diferentes técnicas, principalmente el aprendizaje supervisado y el no supervisado, que explicaremos a detalle más adelante. Para contextualizar y comprender mejor los tipos de datos existentes, estos pueden clasificarse en dos categorías principales: datos estructurados y datos no estructurados. En el pasado, los datos que se usaban mayormente eran los datos estructurados, siendo ejemplos de estos números, fechas, direcciones… los cuales son sencillos de usar. Por otro lado, los datos no estructurados como imágenes, textos… presentan un reto mayor al intentar examinarlos. Actualmente, gracias al uso de la inteligencia artificial, es posible procesar este tipo de datos de forma eficiente, lo que permite realizar predicciones y organizar la información de manera más efectiva. Esto convierte su análisis en una herramienta clave para generar beneficios sociales, como la mejora en el ámbito de la salud, la seguridad vial o el acceso a la educación. Figura 2-2. Diferencia de datos estructurados vs datos no estructurados. [7] 2.3.3. Cronograma evolución de la IA En esta figura recogeremos los principales hitos relacionados con la Inteligencia Artificial para contextualizar un poco todo el impacto y repercusión de esta a lo largo de las décadas. Figura 2-3. Cronograma evolutivo de la IA a lo largo de los años. [8]
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 14 3.1.1.4 KNN El algoritmo KNN o Vecinos más cercanos es un algoritmo de ML el cual se puede utilizar tanto en problemas de clasificación o regresión. Es uno de los algoritmos más simple de aplicar y se basa en el caso de clasificación el algoritmo asigna a un nuevo punto de datos en función de la clase más frecuente entre sus "k" vecinos más cercanos, que se determinan según la distancia. Este algoritmo es tan sencillo porque no necesita un entrenamiento previo, sino que almacena los datos y relaciona los nuevos en función de estos. La distancia más común que se usa es la distancia Euclidiana. [14] Con relación al ejemplo de la imagen, dentro del primer círculo y teniendo en cuenta las características anteriormente mencionadas, el valor asignado a la variable a predecir será triángulo ya que hay más elementos triángulos en esa distancia. En cambio, en el 2 círculo se obtiene que la variable seria asignada a estrella ya que tenemos 4 estrellas frente a 3 triángulos. Esto se varía por K, es decir, en el primer caso tomaríamos una asignación basada en los k=3 vecinos más cercanos siendo estos 2 triángulos y 1 estrella, entonces al haber más triángulos se asignaría triangulo a la variable a predecir. En el segundo ejemplo obtendríamos que k=7 siendo ahora el número de estrellas mayor que de triángulos por eso se asignaría triángulos. Tendríamos que encontrar el valor optimo de K para que la predicción sea lo más precisa posible. Figura 3-5. Ejemplo k-NN. [15]
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 15 3.1.2 Aprendizaje no supervisado El aprendizaje no supervisado es una forma de entrenamiento de algoritmos que consiste en que el modelo aprenda por sí mismo los patrones y relaciones de los datos sin aportarle nada previamente, eso significa que los datos no están etiquetados no habiendo una atribución de salida a un dato de entrada. Alguno de los tipos de aprendizaje no supervisados son: 1. Clustering (Agrupamiento) como por ejemplo K-means 2. Detección de anomalías como por ejemplo SVM 3.1.3 Aprendizaje semisupervisado El aprendizaje supervisado es un mix entre el supervisado y no supervisado. Se usa principalmente cuando el conjunto de datos presenta tanto datos etiquetados como no etiquetados. El modelo crea un primer modelo inicial con una cantidad limitada de datos etiquetados el cual usa después para predecir las etiquetas de los datos no etiquetados creando así un modelo completamente etiquetado. A partir de este modelo final se entrena el modelo, ya que es más robusto. Es una opción realista ya que en la mayoría de los casos de la vida real no se presentan los datos completamente etiquetados. 3.1.4 Aprendizaje por refuerzo El aprendizaje reforzado o por esfuerzo es un algoritmo donde un agente actúa dentro de su ambiente tomando decisiones las cuales hacen que reciba una recompensa o penalización en función de su resultado, es decir, de como de bien ha resuelto el problema. El objetivo es conseguir optimizar las recompensas a medida que pasa el tiempo adaptándose así a este. Este planteamiento es útil sobre todo cuando se busca que el modelo mejore su desempeño con el paso del tiempo no teniendo que tener muchos datos de entrenamiento ya que aprende a base de prueba y error, haciendo así que al inicio la precisión sea muy baja, pero vaya mejorando conforme pase el tiempo. 3.2. Modelo de Machine learning Primero daremos una visión general sin entrar mucho en detalle de que cosas hay que tener en cuenta y llevar a cabo cuando trabajamos con datos para crear un modelo de ML. En primer lugar, hay que realizar una ETL que significa Extracción, Transformación y Carga de datos. Esto nos llevará la mayor parte del tiempo ya que debemos limpiar esos datos, es decir, que cada variable tenga un valor y los datos no contengan ruido. Además, hay que normalizar todos esos datos para que presenten el mismo formato para que a la hora de trabajar con ellos no tengamos ningún problema de incompatibilidad. [9] Después habrá que llevar a cabo una EDA (análisis exploratorio de los datos) que consiste principalmente en que información contienen nuestros datos usando herramientas como Python y sus librerías siendo algún ejemplo histogramas, mapas de calor, autocorrelaciones… Todo esto nos ayudara a entender la relación que existe entre las variables que usamos en nuestro modelo. Al no haber ningún modelo exacto para ningún conjunto de datos el principal problema que nos encontraremos al crear nuestro modelo es el overfitting/underfitting.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 16 3.2.1. Problemas en la precisión del modelo - El underfitting o subajuste es cuando el modelo no contiene suficientemente conocimiento de los datos de entrenamiento generando predicciones incorrectas sobre los nuevos datos que se destinan a la validación ya que el modelo es demasiado simple o se han destinado pocos datos al entrenamiento. Las soluciones son aumentar el tiempo o número de datos, aumentar la complejidad del modelo… - El overfitting o sobreajuste se produce, al contrario, es decir, cuando se destinan demasiados datos al conjunto de entrenamiento y durante demasiado tiempo haciendo que el modelo memorice este conjunto de datos y para datos nuevos el modelo no sea capaz de ajustarse de manera correcta. Para llevar a cabo un ajuste óptimo hace falta llevar a cabo un balance óptimo entre el subajuste y el sobreajuste entrenando al modelo con un conjunto de datos que al seguir destinándole más empieza a empeorar. Figura 3-6. Ejemplo de subajuste, sobreajuste y óptimo para un modelo de clasificación y regresión. [16] 3.2.2. Data Splitting o División de conjuto de datos Un paso importante para conseguir esta estabilidad es la división que llevaremos a cabo para el conjunto de datos de entrenamiento, validación y testeo. En primer lugar ¿qué son los datos de entrenamiento, validación y testeo? El nombre que se le da a cada uno de estos subconjuntos dentro del conjunto principal de datos depende de su función en el modelo. [17] [18] • Datos de Entrenamiento: El modelo utiliza estos datos para aprender y ajustarse a ellos para los futuros datos proporcionados
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 17 • Datos de Validación: Se utilizan para validar el modelo y evitar problemas como overfitting. • Datos de testeo: Se utilizan para evaluar el modelo con datos no vistos y ver como de preciso es en condiciones reales. El orden del uso de estos subconjuntos seria entrenamiento, validación y testeo. Ahora veremos varias formas de dividir estos subconjuntos ya que como bien sabemos no hay ningún modelo “perfecto” por lo que hay que usar diferentes técnicas para intentar que sea lo más preciso posible. • El método más sencillo seria dividir en 70% de los datos en el subconjunto de entrenamiento y el 30% restante en el testeo, dejando a un lado el subconjunto de validación. (Estos subconjuntos representarían un ejemplo posible de división existiendo también la posibilidad de dividirlos 75%- 25%, 80%-20%...) Figura 3-7. División del conjunto de datos por el método más simple [18] • Otra forma de dividirlos ahora teniendo en cuenta el subconjunto de validación seria dando aproximadamente un 70% del total al subconjunto de entrenamiento y un 30% al resto, quedando un 20% para validación y un 10% para testeo. El subconjunto de testeo se deja apartado hasta el momento que queramos validar la calidad de nuestro modelo llamando a este proceso leakage information. • K-Folds o Validación Cruzada, es una técnica útil cuando el conjunto de datos es relativamente pequeño. Consiste en dividir el conjunto de entrenamiento en k partes haciendo que el modelo entrene en cada iteración con el k-n conjunto y valida con el resto repitiéndolo k veces rotando así el conjunto de validación.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 18 Este tipo de división hace que consigamos un rendimiento mucho más fiable y robusto utilizando varios ciclos de entrenamiento haciendo así que se reduzca la probabilidad de que ocurra sobreajuste o subajuste. Figura 3-8. Representación K-Fold. [18] 3.2.3. Métricas de validación del modelo Las métricas de validación se basan en lo que se conoce como matriz de confusión, una herramienta fundamental para analizar el rendimiento de un modelo de clasificación. Para entenderla correctamente, es importante conocer primero qué se entiende por clase positiva y clase negativa. [19][20] • Clase positiva: es el resultado que nos interesa detectar. Por ejemplo, si estamos intentando predecir si hay una alta probabilidad de inundación, diremos que "inundación" es la clase positiva. • Clase negativa: es el resultado contrario, es decir, el que indica que no ocurre lo que estamos buscando. Siguiendo el mismo ejemplo, "no hay inundación" sería la clase negativa. A partir de esto, los modelos de clasificación pueden acertar o equivocarse al hacer sus predicciones. La matriz de confusión resume esas posibles combinaciones: • TP (True Positive – Verdadero Positivo): el modelo predice que habrá inundación (clase positiva), y efectivamente sí la hay. Es un acierto. • FP (False Positive – Falso Positivo): el modelo predice que habrá inundación, pero en realidad no la hay. • TN (True Negative – Verdadero Negativo): el modelo predice que no habrá inundación (clase negativa), y efectivamente no la hay. Es otro acierto. • FN (False Negative – Falso Negativo): el modelo predice que no habrá inundación, pero en realidad
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 19 sí la hay. Es un error más grave porque el sistema no detecta un caso que debería haber identificado. Figura 3-9. Matriz de confusión. [19] En función de estos parámetros podemos concluir 5 métricas de validación: Accuracy o Exactitud, Precisión, Recall o sensibilidad, F1-score y especificidad. • Accuracy: Mide la proporción de aciertos generales. Una baja accuracy implica que el modelo tiene muchos fallos. • Precisión: Mide la precisión de los elementos positivos. Si la precisión es baja clasifica casos mal, es decir, predice cosas que no son. • Recall: Mide cuantos positivos reales se detectaron. Un bajo recall implica que no detecta bien los Positivos reales escapándosele muchos casos en la detección. • Specifity: Mide cuantos negativos reales existen. Si la Specifity es baja confunde negativos con positivos dando así muchos falsos positivos. • F1-Score: Es una combinación entre precisión y Recall Por otro lado, también podemos definir una métrica, que se utilizará para la validación de los
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 20 algoritmos que es R², El R² cuantifica la proporción de la varianza en la variable dependiente (la que estás intentando predecir) que puede ser explicada por las variables independientes (las características o features que usa tu modelo). En otras palabras, nos dice cuánto de la variación en los datos reales es capturada por el modelo. [29] El R² típicamente varía entre 0 y 1 • R²=1 (o 100%): Indica un ajuste perfecto del modelo a los datos. Esto significa que todas las variaciones en la variable dependiente son completamente explicadas por el modelo. En la práctica, un R² de 1 es extremadamente raro y a menudo sugiere un sobreajuste (overfitting) o un error en el modelo si se da en datos reales. • R²=0 (o 0%): Implica que el modelo no explica ninguna de la varianza en la variable dependiente alrededor de su media. En este caso, el modelo no es mejor que simplemente predecir la media de los datos observados. 3.2.4. Optimización de hiperparámetros Los hiperparámetros son unos parámetros predefinidos por el usuario antes de empezar el entrenamiento y son fijos durante toda la ejecución. A lo largo de la memoria veremos ejemplos de hiperparámetros usados en diferentes tipos de algoritmos. Lo que se intenta con estos es buscar el valor óptimo para conseguir la mayor eficiencia del modelo, modificándolos después de cada ejecución viendo que valor es el más idóneo. Esta sería una forma manual de hacerlo, pero existen algunos otros métodos automáticos para optimizarlos siendo estas Grid Search la cual evalúa todos los valores posibles y elige el óptimo. Por otro lado, esta Random Search que es menos optimo que el anterior porque solo prueba una cantidad limitada de valores de los hiperparámetros. 3.2.5. Selección de características Los métodos wrapper evalúan diferentes subconjuntos de características utilizando un modelo predictivo específico. Estos métodos son computacionalmente intensivos, pero pueden ofrecer un rendimiento superior al seleccionar características relevantes para un modelo particular. [21] 1. Selección Hacia Adelante (Forward Selection) • Inicio: Comienza con un conjunto vacío de características. • Proceso: Iterativamente, se añade la característica que mejora más el rendimiento del modelo. • Evaluación: Se utiliza validación cruzada para medir la precisión del modelo con el nuevo conjunto de características. • Criterio de Parada: Se detiene cuando se alcanza un número predefinido de características o no hay
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 21 mejora significativa en el rendimiento. 2. Eliminación Hacia Atrás (Backward Elimination) • Inicio: Comienza con todas las características disponibles. • Proceso: Iterativamente, se elimina la característica cuya ausencia mejora más el rendimiento del modelo • Evaluación: Similar a la selección hacia adelante, se utiliza validación cruzada para medir la precisión del modelo tras la eliminación de cada característica. • Criterio de Parada: Se detiene cuando la eliminación de cualquier característica adicional no mejora el rendimiento del modelo. 3. Búsqueda Exhaustiva (Exhaustive Search) • Proceso: Evalúa todas las combinaciones posibles de características para encontrar el subconjunto que proporciona el mejor rendimiento del modelo. • Consideraciones: Este método garantiza encontrar el mejor subconjunto, pero es computacionalmente prohibitivo para conjuntos de datos con muchas características.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 22 4 APRENDIZAJE PROFUNDO O DEEP LEARNING El deep learning o aprendizaje profundo es una de las técnicas usadas en machine learning. Como bien comentábamos anteriormente, hablando tanto de que es el Deep learning como de técnicas de clasificación y regresión en este capítulo vamos a abarcar las Redes Neuronales las cuales iremos desarrollando a lo largo de todo el capítulo centrándonos en que son, sus principales características, para que se usan o sus tipos entre otras cosas. 4.1. Redes Neuronales Las Redes Neuronales o Redes Neuronales Artificiales son un modelo de computación inspirado en los procesos biológicos del ser humano para procesar información. Es el principal modelo de Deep Learning y se fundamentan en el perceptrón la unidad básica de una red neuronal. El modelo estándar estaría formado por un conjunto de entradas Xi teniendo cada una asignada un peso sináptico Wij, una regla de propagación Hi, definida a partir de los pesos y entradas y una función de activación F, la cual representa la salida en función de su estado de activación. [22] Figura 4-1. Estructuras de redes neuronales. [22] 4.1.1 Perceptron. RNA El perceptrón es la unidad básica dentro una neurona artificial. Está constituido por un conjunto de entradas, teniendo cada una de estas un peso, el cual indicará la intensidad de la sinapsis, es decir, la relación entre dos neuronas. [23] Este a su vez es un modelo unidireccional formado por dos capas principales, capa de salida y capa de entrada. En su forma más simple (perceptrón simple), el modelo está compuesto por una capa de entrada, que entrega los datos sin procesamiento, y una capa de salida que realiza un cálculo lineal con los pesos y aplica una función de activación. No existen capas ocultas en este tipo de red. Este modelo es adecuado solo para problemas que son linealmente separables, ya que su capacidad de representación es limitada. Por otro lado, las redes neuronales tienen algunos conceptos básicos como:
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 23 - Capa: Conjunto de neuronas artificiales (o perceptrones) - Peso: Es la intensidad de la sinapsis, es decir, el grado de fuerza que existe entre neuronas de diferentes capas. Este valor puede ser un número positivo, negativo o nulo y se va modificando de forma automática durante la fase de aprendizaje de la red. - Regla de propagación: Halla el valor potencial en base a las entradas y el peso de estas para finalmente ser usado con la función de activación y obtener la salida. [22] - Función de activación: Obtiene la salida de la neurona artificial a partir del potencial calculado, mapeando así los datos dentro de un rango (-1,1) Figura 4-2. Modelo de una neurona artificial. [37] En resumen, su funcionamiento se basa en un clasificador binario, dividiendo el problema en dos categorías siendo las salidas 0 o 1. La fórmula que usa es la siguiente: Esa salida depende de qué tan importantes sean las características (entradas) y qué peso tenga cada una. Lo que hace el perceptrón al final es trazar una especie de línea (en realidad, un hiperplano si hay muchas variables) que separa una clase de otra. Existe una gran limitación a la hora de estos algoritmos ya que solo son capaces de representar funciones linealmente separables 4.1.2 RNM Las redes neuronales multicapa son redes neuronales diseñadas para resolver problemas donde los datos no pueden separarse de forma lineal. Este tipo de redes está compuesto por una capa de entrada, una o varias ocultas y una de salida estando todas conectadas a los nodos de la siguiente capa. [21][23] Todas las capas exceptuando la de salida tienen un nodo sesgo que su principal función es desplazar la función
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 30 Factor Descripción/Impacto Deforestación Pérdida de cobertura vegetal que altera la retención de agua y la estabilidad del suelo. Urbanización Expansión urbana que aumenta la impermeabilización del suelo y el riesgo de inundaciones. Cambio climático Incremento de fenómenos climáticos extremos debido a alteraciones globales del clima. Calidad de presas Condición estructural y funcional de las presas para retener y manejar agua. Sedimentación Acumulación de sedimentos en cuerpos de agua que reduce su capacidad. Prácticas de agricultura Métodos agrícolas que pueden afectar la erosión del suelo y la calidad del agua. Invasiones Ocupación no planificada de tierras propensas a desastres. Ineficaz preparación contra desastres Falta de sistemas adecuados para mitigar el impacto de eventos extremos. Sistemas de drenaje Infraestructura para el manejo de aguas pluviales y residuales. Vulnerabilidad costera Susceptibilidad de zonas costeras a inundaciones y aumento del nivel del mar. Fronteras Conflictos o barreras administrativas que afectan la gestión de recursos compartidos. Cuencas hidrográficas Áreas geográficas que drenan agua hacia un río o cuerpo de agua común. Deterioro de infraestructuras Degradación de estructuras esenciales como puentes, diques y sistemas de transporte. Puntuación de la población Concentración y vulnerabilidad de la población en áreas propensas a desastres. Pérdida de humedales Desaparición de zonas naturales que actúan como amortiguadores contra inundaciones.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 31 Factor Descripción/Impacto Planes inadecuados Estrategias insuficientes o mal diseñadas para la planificación territorial y de riesgos. Factores políticos Decisiones políticas y gobernanza que afectan la preparación y mitigación de riesgos. Tabla 5-1. Variables independientes del dataset y su descripción. 5.1.1 EDAs. Análisis Exploratorio de los Datos En este apartado se llevará a cabo el análisis exploratorio de los datos o EDAs, que ayuda entender y ver la estructura, relaciones y patrones que representa el dataset. Gracias a esto se puede conocer su distribución, valores nulos, relaciones entre variables… En primer lugar, cabe destacar que todos estos algoritmos han usado el mismo EDAs por lo que se recogerán las características principales de forma común. [27] Las variables al ser categóricas tienen un valor para cada una de las etiquetas variando este desde 1 a 20 representando cuanto afecta esa variable a que se produzca una inundación en ese sitio en concreto. Aquí se muestra un ejemplo de cómo se representan: Figura 5-1. Representación de variables categóricas en el dataset El dataset cuenta con más de 1 millón de muestras, por lo que lo primero que haremos para mejorar el coste
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 32 computacional de todos los algoritmos es dividir el dataset dando 50 mil muestras al entrenamiento y 10 mil al testeo. Los primeros análisis exploratorios representan si el elemento es nulo, cuantas muestras hay y el tipo de dato siendo todos int64 y float64 la probabilidad de inundación que toma valores entre 0-1. En segundo lugar, se tiene una serie de características que definen a las variables, como pueden ser la media, la mediana, los cuartiles, la desviación… Cosas que caben destacar son los valores de los cuartiles que dividen el conjunto de datos en 4 partes iguales representando el 25%, 50% (o mediana), 75% y 100% de los datos que permiten conocer la dispersión y distribución de cada una de las variables. Gracias a la diferencia entre el 1er y 3er cuartil se pueden ver los valores denominados outliers los cuales representan una desviación de la tendencia general de los datos pudiendo ser errores o valores realmente excepcionales. La media y la mediana son prácticamente el mismo valor, en este caso la media igual a 5 y la mediana en torno a 4.9 implicando que la distribución de las variables es aproximadamente simétrica y no presenta ningún sesgo, es decir, no están desplazadas del origen hacia izquierda o derecha. Se puede comprobar esto representando los histogramas de estas a continuación. Figura 5-2. Características de alguno de las variables del dataset. Como se comenta anteriormente, se puede comprobar principalmente que los conjuntos de datos o “bins” están centrados, es decir, no se presentan valores outliers o sesgos significativos. En el eje X, se representan los intervalos que toman cada una de las variables que varía entre 0-15. Estos valores no son cantidades cualitativas sino valores que representan un nivel de riesgo o impacto, un valor de 0 podría indicar "ningún riesgo" o "impacto muy bajo", mientras que un valor de 15 indicaría "riesgo muy alto" o "impacto severo". La escala de 0 a 15 permite una granularidad de 16 niveles distintos para clasificar el nivel de cada factor.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 33 No hay ninguna referencia en el dataset de kaggle con el que se pueda llegar a una conclusión de porque se asignan esos valores en esos territorios. Se puede concluir con que lo han llevado a cabo expertos de la materia, dando así un valor coherente a cada una de las características en la zona en concreto. En el eje Y se representa la frecuencia, siendo esta la cantidad de observaciones que entran en cada uno de los valores de cada intervalo. Se puede observar que la gran mayoría de las muestras se encuentran en torno a la media y mediana que es en torno a 5. A continuación, se mostrarán los histogramas de cada una de las variables del dataset. Figura 5-3. Histogramas de las variables del dataset. Por último, se mostrará la representación de la correlación cruzada entre las variables. Esto muestra la fuerza y dirección lineal entre las variables lineales 1 a 1, estando su valor entre (-1,1). Hay 3 casos representativos: - +1: correlación positiva perfecta (cuando una variable sube, la otra también sube proporcionalmente).
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 34 - 0: sin correlación lineal (no hay relación lineal clara entre ambas) - -1: correlación negativa perfecta (cuando una variable sube, la otra baja proporcionalmente). Gracias a estos valores se puede predecir qué relación existe entre las variables viendo que las variables independientes tienen una correlación prácticamente nula y solo presentan correlación con la variable dependiente FloodProbability. Con este dato se puede sacar que variables son las más representativas a la hora de ser usadas en el análisis, además se observa que no hay multicolinealidad ya que las variables no presentan dependencias entre sí, siendo esto positivo. Figura 5-4. Correlación entre variables del dataset. La multicolinealidad en un dataset ocurre cuando dos o más variables independientes están altamente correlacionadas entre sí. Esto significa que una variable puede ser casi linealmente predicha a partir de las otras, generando redundancia en la información. [28]
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 35 Las variables muestran solo una pequeña diferencia en la correlación, siendo un 1% más que el resto de las variables cosa que no concluye en nada, por lo que no se puede usar esta métrica para la elección de las variables con más peso. Si fuese más notable, en un análisis predictivo o de regresión, esto sugiere que dicha variable independiente puede ser un buen predictor o explicador de la variable dependiente. Cuanto más alta (en valor absoluto) sea la correlación, mayor es la capacidad potencial de esa variable para influir o explicar las variaciones en la variable dependiente. Para concluir, antes de entrar en cada uno de los algoritmos usados, ha sido aplicado el método RFE para obtener las 9 variables más significativas y ver si coinciden con las obtenidas en la correlación cruzada. El método RFE (Recursive Features Elimination) consiste en clasificar todas las características según su importancia, haciéndose iteraciones repetitivas y eliminando las menos relevantes para el modelo, dejando así un el número de características más relevantes que consideremos. En nuestro caso dejaremos las 9 más relevantes al igual que en la correlación, obteniendo así estos resultados: Deforestation, Agricultural Practices, Encroachments, Ineffective Disaster Preparedness, Drainage Systems Coastal Vulnerability, Landslides, Population Score, Welt and Loss. Ahora se verá cómo afectará reducir el número de variables al análisis predictivo si esto mejora o no el rendimiento. (1) En todos los algoritmos se realizarán 2 pruebas, la primera de ellas usando las 20 variables iniciales y la segunda usando solo las 9 calculadas con RFE para comparar si es efectivo o no y que predicción es más efectiva. 5.2. Algoritmo KNN Como bien hemos explicado en capítulos anteriores, el modelo KNN también conocido en español como K Vecinos más Cercanos, es un algoritmo que se utiliza en modelos supervisados tanto para problemas de regresión como de clasificación. [14] Este algoritmo se basa en buscar un número de puntos K, siendo estos los puntos más cercanos dentro de una distancia acotada. A estos puntos se les conoce como “vecinos más cercanos”, midiéndose la distancia entre el valor a predecir y estos con el modelo euclidiano. Una característica de este modelo es que no tiene fase de entrenamiento, solo se almacenan los datos con sus respectivas etiquetas, haciéndolo mucho más simple que el resto de los algoritmos que se usarán. Lo más importante en este modelo es encontrar la K ya que si es demasiado pequeño el modelo tiende a sobre ajustarse y si K es demasiado grande tiende a generalizarse, perdiendo la capacidad de encontrar patrones más pequeños y específicos. En este algoritmo utilizaremos métricas de evaluación como R² score, Mean Squared Error (MSE) y Mean Absolute Error (MAE) para evaluar su rendimiento. Ahora se procederá a explicarse el funcionamiento de nuestro algoritmo:
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 36 En primer lugar, lo que se hace es buscar el valor óptimo de K para así poder obtener el mayor rendimiento y los valores óptimos de las métricas usadas, utilizando para ello un rango entre (1,21) que se recorrerá dentro de un bucle, dando como resultado el valor óptimo. Figura 5-5. Rendimiento del modelo vs K. Se puede observar en este grafico como aumentando el valor de K aumenta proporcionalmente el valor de la métrica R² score, que es la métrica principal de evaluación del modelo, las otras son complementarias. Se puede observar a partir de k=13 el cambio en R²_score es poco notable por lo que se puede preguntar por qué no elegir k=13 frente a k=20, el caso es saber lo que se busca si una generalización o un detalle más local. En este caso se busca un modelo más generalizado y estable por lo que mi k=20 sería óptimo aportando predicciones más suaves y menos sensibles a ruido porque considera más vecinos en la predicción. También mejora frente a outliers, que son puntos “fuera de lo común”, teniendo estos menos pesos en un conjunto de 20 vecinos que en uno de 13. Por otro lado, si se busca el detalle local es mejor usar k=13 pudiéndose capturar cambios rápidamente. Entonces con nuestra elección de K se obtiene: - Mejor k encontrado: 20 - R²: 0.62456 - MSE: 0.00095 - MAE: 0.02538 Una R² del 62.5% implica que ese tanto por ciento es capturado por nuestro modelo de regresión aplicado, es
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 37 decir, se ajustan a la línea de regresión que veremos a continuación. Figura 5-6. Valores reales vs predichos con línea de regresión. Como se puede observar en la imagen, la gran mayoría de los valores se encuentran recogidos por nuestro modelo de regresión viéndose claramente una relación lineal positiva. Por otro lado, existen dos zonas, en primer lugar, la zona de (0.35-0.45) y la zona de (+0.60) donde el modelo no se ajusta bien a los valores. Por regla general el modelo aprende de una forma adecuada, pero tiene algunas limitaciones en las zonas de los extremos. Como se comentaba anteriormente (1), tuvimos una elección de los valores más representativos basados en RFE, obteniendo estas 9 variables como las más influyentes al modelo: 'Watersheds','Landslides','CoastalVulnerability','AgriculturalPractices','Encroachments', 'Inadequate Planning', 'DamsQuality', 'Siltation', 'Urbanization' Ahora se usarán estas 9 variables y no las 20 variables totales para ver si es efectivo o no usar estas.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 38 En este caso se usará la misma K=20 del análisis anterior ya que es la más adecuada, obteniendo: • Mean Squared Error: 0.00202 • R² Score: 0.23410 • Mean Absolute Error: 0.03629 Figura 5-7. Valores reales vs predichos con línea de regresión (KNN con 9 variables). Como se puede observar, nuestra R² solo capta un 23% de los valores en el modelo de regresión, lo que da una predicción muy mala comparada con la primera en la que se usan todos los valores. Además, tanto las métricas de MSE y MAE son mayores no siendo viable el uso de solo las 9 características más representativas en el modelo. En el gráfico se puede observar cómo no se sigue una tendencia lineal entre la línea de regresión y los valores, ya que la nube de puntos se encuentra prácticamente centrada, dando a entender que nuestro modelo solo se adapta a una muy pequeña parte de las muestras. En conclusión, no es viable el uso de esta técnica. Para finalizar se mostrarán dos gráficos representativos, el primero es la distribución de errores entre reales y predichos y el segundo el error absoluto vs el valor real
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 39 Figura 5-8. Distribución de errores predichos vs reales. En este histograma se puede ver la diferencia entre la predicción y el valor real, siendo los valores cercanos a 0 predicciones acertadas. Por otro lado, los valores negativos representan subestimación y valores positivos sobrestimación. El histograma se encuentra centrado y no presenta ningún sesgo pronunciado por lo que se puede descartar sobrestimación y subestimación, además vemos que la mayoría de los errores están entre -0.05 y 0.05 que siendo nuestra escala de datos entre 0.3-0.7 (observable en la nube de puntos de las imágenes anteriores) es algo lógico. Este último grafico muestra en que rangos de valores reales el modelo se equivoca en mayor o menor medida. Podemos observar un gráfico en forma de U obteniéndose más precisión en el centro que en los extremos, cosa que ya sabíamos de gráficos anteriores donde las zonas extremas no se predecían tan bien como el resto. Esto es algo común en modelos KNN por el poco número de datos en los extremos del rango. En conclusión, el gráfico predice bien en promedio, pero con pequeños errores en las zonas extrema.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 46 aprendizaje, pero más robusto. - Estimartor_max_depth: profundidad máxima del modelo base, en este caso Decision Trees. En este caso al tener mayor coste computacional se descarta el uso de GridSearchCV por el tiempo de ejecución, usando entonces RandomizedSearchCV.[31] Esta función actúa igual que la primera, pero prueba un número fijo de combinaciones aleatorias de los hiperparámetros. No garantiza encontrar el óptimo global, pero si mejorar notablemente la eficiencia. En este caso se llevarán a cabo 10 iteraciones aleatorias a probar y los hiperparámetros se encontrarán entre los intervalos de: 1. 'n_estimators': randint (100, 400), 2. 'learning_rate': uniform (0.05, 0.5) 3. 'estimator__max_depth': randint (2, 6) Generan números reales aleatorios siendo randint enteros y uniform reales. Con esto se obtienen los siguientes valores: - Mejores hiperparámetros: {'estimator__max_depth': 4, 'learning_rate': 0.4482714934301164, 'n_estimators': 370} - R²: 0.6505237646142535 - MSE: 0.0009090512616059208 - MAE: 0.024475167323773982 Como se puede observar, R² del 65% siendo este un resultado bastante bueno en comparación con el resto de los algoritmos usados, y unos errores de MSE y MAE más bajos que el resto de los algoritmos por lo que se puede decir que el modelo realiza una buena predicción. Por otro lado, se un R² del 66% con los datos de entrenamiento, es decir, un dato muy parejo a lo real, lo que representa que nuestro modelo difiere muy poco con el entrenamiento. Como podemos observar en la imagen gran parte de la muestra es recogida por la línea ideal (roja) pero la zona de los extremos queda fuera. Se puede apreciar una tendencia lineal con un leve desajuste ya que la predicción no es del todo exacta (65%) pero siendo esta tendencia bastante factible con la ideal. La zona donde se difiere más es en las zonas habituales, la zona de los extremos, siendo (0.35-0.45) y (+0.60) donde el modelo no se ajusta bien a los valores. Por regla general el modelo aprende de una forma adecuada, pero tiene algunas limitaciones en las zonas de los extremos.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 47 Figura 5-14. Predicción real vs valor real. En este caso se usan los mismos valores para los hiperparámetros calculados en el primer apartado, obteniendo así estos resultados: ('estimator__max_depth': 4, 'learning_rate': 0.4482714934301164, 'n_estimators': 370): • R²: 0.28980 • MSE: 0.00185 • MAE: 0.03483 Se puede observar de primeras que nuestra R² solo capta un 29% de los valores en el modelo de regresión, lo que da una predicción muy mala comparada con la primera en la que usamos todos los valores. Además, tanto MSE como MAE son mayores por lo que no es viable usar solo las 9 características más representativas en el modelo.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 48 Figura 5-15. Predicción vs real (con 9 características más importantes). En el gráfico, se puede observar cómo no se sigue una tendencia lineal entre la línea de regresión y los valores, sino que siguen una tendencia similar pero muy alejada de la ideal y de la predicción calculada con todas las características. En conclusión, no es viable usar solo 9. Ahora se mostrarán como anteriormente, dos gráficos representativos, el primero de ellos sobre la distribución de errores entre reales y predichos y el segundo sobre el error absoluto vs el valor real Figura 5-16. Distribución de errores predichos vs reales.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 49 En el histograma se observa que las muestras están mucho más centradas en 0 que en el resto de los algoritmos, esto se debe a la similitud de los resultados entre las métricas del entrenamiento y el test. No se encuentra prácticamente subestimación ni sobrestimación, no presentándose ningún sesgo pronunciado y siendo los errores abarcados menores que en el resto de los algoritmos estando acotados entre [-0.03,0] y de [0, -0.03] Figura 5-17. Error absoluto vs real. En este gráfico se observa que el error absoluto es peor, debido a que en la zona centrada llega a valores más altos que el resto de los algoritmos. La dispersión de los valores es menor estando estos más concentrados en el centro, con una U más dispersa teniendo los errores esparcidos a lo largo de todos los valores, no solo en las zonas extremos. Lo que se intuye es un mayor ruido general. 5.4. Conclusiones generales. Comparativa de los algoritmos Antes de hacer una comparativa de los algoritmos utilizados, se llevará a cabo una conclusión previa de la tendencia obtenida en las gráficas de valores reales vs valores predichos Como se puede observar en estas gráficas donde muestra la dispersión de los valores reales de probabilidad de inundación (puntos) vs las predicciones generadas por el modelo (línea roja). [9] La falta de una coincidencia entre la nube de puntos y la línea roja es un indicador de la presencia de errores residuales. Estos errores son inherentes a la modelización predictiva, es decir, por la propia naturaleza de intentar modelar fenómenos complejos del mundo real con datos imperfectos y modelos simplificados,
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 50 siempre habrá algún grado de error que pueden atribuirse a factores como la variabilidad no capturada por las variables de entrada, el ruido en los datos, o las limitaciones intrínsecas del modelo para capturar la complejidad completa del fenómeno [35] Además, en cualquiera de los algoritmos, se tiende a sobrestimar en valores bajos y subestimar en valores altos provocando un sesgo por compresión hacia la media, común en este tipo de algoritmos ya que no extrapolan bien, tendiendo a cometer errores en las zonas extremas. La solución viable para mejorar esto sería el uso de algoritmos de boosting más complejos con lo que se obtienen valores en las métricas mucho mejores y se corregiría la desviación de la pendiente. Estos algoritmos se comentan en el siguiente capítulo. La magnitud de estas desviaciones se cuantifica mediante métricas de error como el MSE, y el R-cuadrado nos indica la proporción de la varianza total explicada por el modelo. Además, Ahora se procederá a la comparativa entre los resultados obtenidos con los diferentes algoritmos. Si tuviéramos que hacer una visión global de todos los resultados obtenidos en los algoritmos y decir cuál de ellos ha sido el mejor ¿Cuál sería? Para sacar una conclusión de los diferentes algoritmos tendremos en cuenta 3 estándares: 1. Tiempo de ejecución 2. Complejidad 3. Rendimiento (Métricas) Algoritmo R² Score Tiempo de ejecución Complejidad KNN 0.6245 52s Baja Random Forest 0.5711 2min 35s Media AdaBoost 0.65052 3min 25s Alta Tabla 5-3. Resultados de las diferentes paramétricas de los algoritmos - En cuanto a KNN: En primer lugar, el tiempo de ejecución del código completo es de 52 segundos un tiempo bastante bajo en comparación con el resto de los algoritmos cosa que suma un punto positivo para este. En segundo lugar, la complejidad del algoritmo es bastante simple ya que no tiene parte de entrenamiento y la búsqueda del parámetro K se hace recorriendo un bucle for por lo que no tiene mucha complejidad en cuanto a programación ni conceptos. En tercer lugar, el rendimiento obtenido finalmente ha sido de 62.5%, no siendo el mejor valor posible, pero si estando por encima del 50%. Gracias en su baja complejidad y tiempo de ejecución este algoritmo obtiene una muy buena puntuación.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 51 - En cuanto a Random Forest: En primer lugar, el tiempo de ejecución del código completo es de 2 minutos y 35 segundos un tiempo relativamente bajo teniendo en cuenta que hemos usado la función GridSearchCV que tarda bastante frente a otras ya que el tiempo de ejecución es lógico. En segundo lugar, la complejidad del algoritmo tiene un punto de complejidad no dejando de ser un algoritmo simple ya que usa tantos mecanismos de optimización de hiperparametros y conjunto de Decision Trees cosa que hace que sea más difícil que este. En tercer lugar, el rendimiento obtenido finalmente ha sido de 57% no hemos obtenido un rendimiento tan bueno en comparación con su complejidad y tiempo de ejecución ya que con otros algoritmos hemos conseguido resultados mejores. No deja de ser una prueba didáctica en base al conocimiento de diversos algoritmos de Machine Learning y este era uno de los más famosos. No sería el algoritmo que se usaría en este caso. - En cuanto a AdaBoost,: En primer lugar, el tiempo de ejecución del código completo es de 3 minutos y 25 segundos un tiempo ya un poco más notable ya que el algoritmo tarda más en procesarlo, incluso usando una función de Randomized y no GridSearch el tiempo sigue siendo bastante elevado. En segundo lugar, la complejidad del algoritmo tiene un punto de complejidad no dejando de ser un algoritmo simple dentro de lo que viene siendo boosting aunque en comparación con el resto de los algoritmos usados si es más complejo ya que usa tantos mecanismos de optimización de hiperparametros y conjunto de Decision Trees cosa que hace que sea más difícil que este. En tercer lugar, el rendimiento obtenido finalmente ha sido de 65%, hemos obtenido un buen rendimiento en base al test y en comparación con el rendimiento obtenido en el entrenamiento. Si que es verdad que si usáramos una optimización más precisa de los hiperparametros podríamos conseguir un resultado mejor, pero se vería afectado directamente al tiempo de ejecución cosa que no queremos que suba más. En términos generales teniendo en cuenta todos los parámetros, el algoritmo de KNN, a pesar de ser el más simple es el mejor en este caso, ya que incluso si solo se valoraran las métricas seguiría estando muy parejo con el algoritmo de Adaboost, siendo este mucho más complejo en su uso. Por lo que finalmente, el algoritmo ganador para la resolución de este problema sería KNN.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 52 6 CONCLUSIONES Y LÍNEAS FUTURAS 6.1. Conclusiones. Este Trabajo Fin de Grado (TFG) ha abordado el desafío de la predicción de la probabilidad de inundaciones mediante la aplicación de diversas técnicas de inteligencia artificial, específicamente dentro del campo del Machine Learning. El objetivo principal ha sido desarrollar y evaluar modelos predictivos capaces de estimar con antelación el riesgo de eventos de inundación, lo que representa un paso fundamental en la mejora de los sistemas de alerta temprana y la gestión de riesgos en áreas vulnerables. La metodología seguida ha puesto un fuerte enfoque en preparar y analizar los datos de forma cuidadosa. Desde el análisis exploratorio (EDA), que ayudó a entender bien las variables y sus relaciones, hasta el tratamiento de la multicolinealidad y el preprocesamiento, cada paso fue clave para garantizar la calidad y confiabilidad de los datos usados por el modelo. También fue fundamental dividir correctamente los datos y ajustar los hiperparámetros con técnicas como GridSearchCV y RandomizedSearchCV, lo que permitió mejorar el rendimiento de los algoritmos y reducir el riesgo de sobreajuste. En cuanto a los algoritmos de Machine Learning evaluados (K-Nearest Neighbors, Random Forest y AdaBoost), cada uno ha demostrado capacidades distintas para abordar el problema de predicción. El modelo de Random Forest muestra una notable robustez y capacidad para manejar la complejidad de los datos, entregando buenos resultados. Su naturaleza basada en ensambles de árboles de decisión le permite capturar relaciones no lineales y reducir la varianza, lo que resultó beneficioso en este contexto. AdaBoost, por su parte, mostró el potencial de las técnicas de boosting al construir un modelo fuerte a partir de componentes débiles, aunque su rendimiento pudo ser más sensible a las particularidades del conjunto de datos. KNN, si bien útil como línea base, mostró las limitaciones de los métodos basados en la distancia en entornos de alta dimensionalidad o con distribuciones de datos complejas. A pesar de los resultados positivos obtenidos en términos de métricas como el MSE y el R-cuadrado es fundamental reconocer la existencia de errores residuales en las predicciones. La falta de una coincidencia perfecta entre los valores reales y los valores predichos, visualizada en los gráficos de dispersión, es un claro indicador de que los fenómenos naturales complejos, como las inundaciones, no pueden ser capturados en su totalidad por ningún modelo. Estos errores se atribuyen a factores como la variabilidad no explicada por las variables de entrada, el ruido en los datos, o las propias limitaciones de los modelos simplificados para replicar los problemas del mundo real En conclusión, este TFG ha demostrado que las técnicas de Machine Learning son herramientas valiosas y aplicables para la predicción de la probabilidad de inundaciones, ofreciendo una base sólida para futuros desarrollos.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 53 6.2. Líneas Futuras de Investigación y propuestas de algoritmos. Algunas propuestas de solución al problema que se llevan a cabo en kaggle y son las que mejor scoring consiguen son las de boosting como XGBoost, LightGBM o Catboost que son bastante complejos para ser abarcados en este trabajo.[30] XGBoost se presenta como una potente herramienta de machine learning, basada en árboles de decisión y afinada para entregar una velocidad y eficacia muy altas. Se fundamente en el Gradient Boosting, una técnica que levanta modelos de forma escalonada, donde cada árbol entrante y pule los fallos del previo. Destaca en labores de regresión, clasificación y jerarquización, resaltando por su habilidad para mejorar con datasets inmensos. Optimiza funciones objetivo-específicas, como el error cuadrático medio o la log-loss, y brinda un control minucioso sobre la regularización, echando una mano para esquivar el sobreajuste.[32] LightGBM, por su lado, es otra para ser extremadamente rápida en contextos con grandes volúmenes de datos. Emplea una táctica fundamentada en histogramas para bajar el coste de computacional y un desarrollo de árboles "leaf-wise", que apuesta por seccionar las ramas más prometedoras. Gasta menos memoria y es eficiente en el manejo de variables categóricas. [33] CatBoost pone el foco en simplificar la gestión de variables categóricas, transformándolas automáticamente mediante trucos estadísticos durante el aprendizaje. Utiliza un boosting simétrico que prioriza la estabilidad del modelo y reduce el peligro de sobreajuste. Se muestra fuerte en conjuntos de datos desbalanceados y tiene un buen rendimiento sin tener que ajustar mucho los hiperparámetros. A continuación, se mostrará un cuadro resumen con la comparativa entre los 4 algoritmos de boosting mencionados: Característica XGBoost LightGBM CatBoost AdaBoost Velocidad Alta Muy alta Alta Media Escalabilidad Excelente Excelente Buena Limitada Manejo de categorías Requiere preprocesamiento Codificación eficiente Automático Requiere preprocesamiento Regularización Avanzada Avanzada Implícita Básica Robustez Alta Alta Muy alta Baja (sensible al ruido) Uso recomendado Datos grandes y complejos Datos muy grandes Datos con muchas categorías Problemas simples, poco ruido Tabla 6-1. Tabla comparativa algoritmos boosting. [34]
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 54 Con este tipo de algoritmos se consiguen una mejoría significativa a la hora de los resultados, mejorándose también el problema observado con la pendiente en el resto de los algoritmos. Estos son algunos ejemplos sacados de kaggle viéndose como mejora significativamente el resultado: Figura 6-1. Predicción de los valores con el algoritmo XGBoost [38] 6.1.1 Otras líneas futuras de investigación. Además de la exploración de algoritmos de boosting más complejos, como los mencionados en la sección anterior, existen diversas vías de investigación que podrían enriquecer y potenciar los resultados obtenidos en este Trabajo Fin de Grado. Estas líneas se centran en la mejora de los datos, la aplicación de nuevas metodologías de aprendizaje y la integración del modelo en contextos operativos. • 1. Recopilación y Enriquecimiento de Datos: Una de las limitaciones inherentes a cualquier modelo predictivo es la calidad y cantidad de los datos disponibles. Por tanto, una línea futura clave sería la integración de nuevas fuentes de datos más granulares o con mayor resolución temporal y espacial. Esto podría incluir datos meteorológicos más precisos, datos de sensores IoT en ríos y cuencas, imágenes satelitales (para análisis de cobertura del suelo, humedad del suelo o incluso detección temprana de desbordamientos) o información topográfica detallada. Un conjunto de datos más rico y limpio podría permitir a los modelos capturar patrones más sutiles y mejorar significativamente la precisión predictiva.
Predicción de la probabilidad de inundaciones utilizando técnicas de inteligencia artificial 55 • 2. Técnicas Avanzadas de Feature Engineering: El éxito de un modelo de Machine Learning no solo reside en el algoritmo, sino también en la calidad de las características de entrada. Aunque en este trabajo se ha realizado un preprocesamiento y selección de variables, explorar técnicas de feature engineering más avanzadas podría generar nuevas variables predictoras de mayor poder discriminativo. Esto podría incluir la creación de características de interacción entre variables, la derivación de variables temporales (tendencias, medias móviles, desviaciones estacionales) o la aplicación de métodos de reducción de dimensionalidad no lineales para extraer representaciones más significativas de los datos existentes. Estas características podrían ayudar al modelo a entender mejor la dinámica de los fenómenos de inundación. • 3. Exploración de Modelos de Deep Learning: Si bien el presente estudio se ha centrado en algoritmos de Machine Learning tradicionales (KNN, Random Forest, AdaBoost) y se propone el estudio de otros ensembles (XGBoost, LightGBM, CatBoost), el Deep Learning ofrece un vasto campo de exploración. Particularmente, las Redes Neuronales Recurrentes (RNN), como las LSTM (Long Short-Term Memory), serían muy adecuadas para modelar datos de series temporales (como los flujos de ríos o precipitaciones a lo largo del tiempo) que son inherentemente secuenciales. De manera similar, si se incorporasen datos espaciales (mapas topográficos, imágenes satelitales), las Redes Neuronales Convolucionales (CNN) podrían extraer características espaciales relevantes para la predicción de inundaciones. Aunque son modelos más complejos y con mayores requisitos computacionales, su capacidad para aprender representaciones complejas directamente de los datos podría desbloquear un nivel superior de precisión.