Trabajo de Fin de Grado – Universidad CEU San Pablo (2025)
Aplicación de técnicas de Machine Learning para la identificación de posibles señales de materia oscura en fuentes no identificadas del catálogo Fermi-LAT.
El telescopio espacial Fermi-LAT detecta rayos gamma de alta energía emitidos por fenómenos cósmicos extremos. Desde su lanzamiento por la NASA en 2008, ha permitido catalogar miles de fuentes de radiación gamma. Sin embargo, un gran porcentaje de ellas —denominadas **UNIDs (fuentes no identificadas)— aún no tienen una clasificación clara.
La hipótesis de que la materia oscura esté compuesta por partículas masivas débilmente interactuantes (WIMPs) sugiere que algunas de estas fuentes podrían ser el resultado de aniquilaciones de materia oscura, generando rayos gamma detectables.
Este proyecto explora la capacidad del aprendizaje automático para detectar estas anomalías mediante un enfoque interdisciplinar que combina ciencia de datos, física de partículas y astrofísica computacional.
Mapa del cielo en rayos gamma observado por Fermi-LAT
El objetivo principal es aplicar técnicas de Machine Learning supervisado y no supervisado para identificar candidatos a señales de materia oscura entre las fuentes no identificadas del catálogo Fermi-LAT (4FGL-DR3).
- Entrenar modelos con fuentes astrofísicas conocidas (púlsares, blazares, etc.)
- Detectar anomalías entre las fuentes no identificadas (UNIDs)
- Comparar predicciones con modelos existentes de referencia (ANN)
- Priorizar fuentes prometedoras para seguimiento observacional
- Validar resultados mediante análisis estadístico y visualización
| Enfoque / Modelo | Propósito | Herramienta principal |
|---|---|---|
| One-Class SVM (OCSVM) | Detección de anomalías sin etiquetas | scikit-learn, Pandas |
| Red neuronal (ANN) | Modelo supervisado de referencia | Scikit-learn |
| Fusión OCSVM + ANN | Comparación y sinergia entre enfoques | Análisis cruzado |
- Visualizaciones 2D y 3D
- Análisis estadísticos avanzados
- Selección de hiperparámetros mediante Grid Search
- Validación cruzada y métricas de rendimiento
- Análisis de la frontera de decisión aprendida por los modelos
DarkMatter_ML_TFG/
│
├── TFG_codigo_final/ # Código principal y scripts
│ ├── data/ # Datos intermedios y transformados
│ │ ├── results/ # Resultados OCSVM y ANN organizados por tipo
│ │ ├── *.txt, *.h5 # Archivos de entrada y salida
│ └── notebooks/ # Jupyter Notebooks experimentales
│ ├── OCSVM_*.ipynb # Modelos de detección de anomalías
│ └── ANN_*.ipynb # Comparación con redes neuronales
│
├── notebooks/ #Jupter notebooks exploratorios, de procesamiento y experimentales iniciales
├── docs/
├── DR4/
├── outputs/
├── src/
├── requirements.txt # Entorno reproducible (librerías)
└── README.md
- Python 3.9 o superior
- Git
git clone https://github.com/martacanirome4/DarkMatter_ML_TFG.git
cd DarkMatter_ML_TFG# Crear entorno virtual (recomendado)
python -m venv venv
source venv/bin/activate # En Windows: venv\Scripts\activate
# Instalar dependencias
pip install -r requirements.txtjupyter notebook notebooks/- Ejecutar notebooks exploratorios para familiarizarse con los datos del catálogo Fermi-LAT
- Análisis preliminar de características y distribuciones
cd TFG_codigo_final
jupyter notebook notebooks/Orden de ejecución recomendado:
-
Notebooks OCSVM: Modelos de detección de anomalías
- Preparación de datos
- Entrenamiento One-Class SVM
- Evaluación y visualización de resultados
- Análisis comparativo: Fusión de resultados OCSVM + ANN
-
Notebooks ANN: Redes neuronales de referencia
- Implementación del modelo de Gammaldi et al. (2023)
- Comparación con resultados publicados
- Gammaldi et al., 2023 – A search for dark matter among Fermi-LAT unidentified sources
📄 Artículo MNRAS
- Catálogo Fermi-LAT NASA:
🔗 Fermi Science Support Center - 4FGL: Fourth Fermi-LAT Source Catalog
- DR4: Data Release 4
- Implementación ANN original:
🔗 ViviGamma/Fermi_LAT_unids_NN
scikit-learn>=1.0.0 # Algoritmos de Machine Learning
pandas>=1.3.0 # Manipulación de datos
numpy>=1.20.0 # Computación numérica
matplotlib>=3.5.0 # Visualizaciones básicas
seaborn>=0.11.0 # Visualizaciones estadísticas
jupyter>=1.0.0 # Entorno de notebooks
h5py>=3.0.0 # Manejo de archivos HDF5
astropy>=5.0.0 # Astronomía y coordenadas celestes- Fuentes totales: ~5000 fuentes del catálogo 4FGL
- UNIDs analizadas: ~1000 fuentes no identificadas
- Características por fuente:
- Log(E_peak): Energía del pico espectral
- Log(beta): Curvatura espectral
- Log(sigma): Significancia estadística de detección
- Log(beta_rel): Error relativo de la curvatura espectral
Marta Canino Romero
Grado en Ingeniería en Sistemas de Información
Universidad CEU San Pablo (Madrid, España) – TFG 2025
📧 Contacto: martacaninoromero@gmail.com 🔗 GitHub: @martacanirome4
Este repositorio se publica con fines académicos. Todo el contenido es original salvo donde se indique lo contrario.
- 📖 Documentación Fermi-LAT
- 🧮 Scikit-learn Documentation
- 🌌 Astrofísica de rayos gamma
- 🔬 Dark Matter searches
Última actualización: Junio 2025



