Tabular Regression
Keras
magnitool / README.md
bleondubos's picture
error corregido
9f872a9 verified
|
Raw
History Blame Contribute Delete
3.24 kB
---
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("==============================================")