--- license: cc-by-nc-sa-4.0 pipeline_tag: tabular-regression --- # 🌎 Red Neuronal Sísmica de y para Chile (2021 - 2026) Este repositorio contiene un modelo de Inteligencia Artificial desarrollado en Python utilizando **TensorFlow (Keras)** enfocado en predecir la **Magnitud** (Escala Richter) de eventos sísmicos en todo el territorio chileno, basándose exclusivamente en coordenadas geográficas y profundidad. El modelo fue entrenado utilizando un dataset de **5.800 sismos** extraídos directamente de los servicios del **USGS** correspondientes a los últimos 6 años de actividad tectónica en Chile (enero 2020 - junio 2026). --- ## 📊 Arquitectura y Rendimiento del Modelo El modelo consiste en una Red Neuronal Densa (Sequential) optimizada para regresión: * **Capa de Entrada:** Recibe la Latitud, Longitud y Profundidad (escaladas). * **Capas Ocultas:** 3 capas densas (64, 32, 16 neuronas) con funciones de activación `ReLU`. * **Capa de Salida:** 1 neurona lineal para la estimación de la Magnitud exacta. ### Curva de Aprendizaje y Precisión El entrenamiento fue optimizado mediante **Early Stopping**, deteniéndose automáticamente al alcanzar el punto de máxima generalización para evitar el sobreajuste del modelo. * **Métrica de Error (MAE):** `~0.22` * **Significado:** En promedio, la IA predice la magnitud de un sismo con un margen de error de apenas $\pm 0.2$ puntos en la escala de Richter. ![Curva de Aprendizaje](curva-aprendizaje.png) --- ## 🗂️ Archivos en este Repositorio Para que el sistema de predicción funcione correctamente, se necesitan dos componentes fundamentales incluidos aquí: 1. `magnitool.keras`: El cerebro de la red neuronal con los pesos y conexiones óptimas entrenadas. 2. `escalador.pkl`: El objeto `StandardScaler` de Scikit-Learn que normaliza las entradas del usuario antes de pasarlas a la IA (crucial debido a las grandes diferencias numéricas entre coordenadas y profundidades de hasta 300 km en zonas como Socaire o Calama). --- ## 🚀 Cómo usar este Modelo en Python Puedes descargar y ejecutar este modelo dinámicamente desde el Hub utilizando el siguiente script: ```python import numpy as np import tensorflow as tf import joblib from huggingface_hub import hf_hub_download # 1. Descargar componentes desde Hugging Face repo_id = "openlionai/magnitool" ruta_escalador = hf_hub_download(repo_id=repo_id, filename="escalador.pkl") ruta_modelo = hf_hub_download(repo_id=repo_id, filename="modelo_chile.keras") escalador = joblib.load(ruta_escalador) modelo = tf.keras.models.load_model(ruta_modelo) ``` Puedes calcular la magnitud de un sismo con el siguiente comando: ```python # Formato: [Latitud, Longitud, Profundidad_km] # Ejemplo: Un sismo en el mar frente a la costa de la zona central datos = np.array([[-33.0, -72.0, 15.0]]) sismo_escalado = escalador.transform(datos) prediccion_magnitud = modelo_chile.predict(sismo_escalado) print("\n==============================================") print(f"📍 Datos del Sismo-> Lat: {datos[0][0]}, Lon: {datos[0][1]}, Prof: {datos[0][2]} km") print(f"🔮 La IA calcula que su magnitud será de: {prediccion_magnitud[0][0]:.2f}") print("==============================================")