Volver a proyectos
Machine LearningOpen Source

Predicting Pulsar Stars

Machine Learning en C++ para clasificar estrellas púlsar

C++LibTorchPyTorchCMakeMachine Learning

Descripción

Aplicación en C++ que utiliza LibTorch (frontend C++ de PyTorch) para predecir si un objeto celeste es una estrella púlsar basándose en datos astronómicos. Analiza ocho variables continuas de mediciones de perfil integrado y curva DM-SNR para clasificar objetos.

Características

  • Predicción ML para clasificación de estrellas púlsar
  • 8 features astronómicas de entrada
  • Sistema de compilación CMake multiplataforma
  • Compatible con Apple Silicon (macOS)
  • Operaciones tensoriales eficientes con LibTorch

Las estrellas púlsar son estrellas de neutrones altamente magnetizadas que emiten pulsos de radiación. De los ~70,000 candidatos detectados, solo ~2,000 son púlsares reales — este proyecto usa ML para distinguirlos.

El problema

Los radiotelescopios detectan miles de señales candidatas a púlsar, pero la mayoría son falsos positivos causados por interferencia de radio (RFI) o ruido. La clasificación manual es lenta y subjetiva. Este proyecto automatiza la clasificación usando un modelo de machine learning entrenado con datos astronómicos reales del dataset HTRU2.

Features de entrada

Feature 1

Media del perfil integrado

Feature 2

Desviación estándar del perfil integrado

Feature 3

Curtosis del perfil integrado

Feature 4

Asimetría del perfil integrado

Feature 5

Media de la curva DM-SNR

Feature 6

Desviación estándar de la curva DM-SNR

Feature 7

Curtosis de la curva DM-SNR

Feature 8

Asimetría de la curva DM-SNR

17,898

Muestras en el dataset

8

Features de entrada

2

Clases (púlsar / no-púlsar)

C++17

Estándar del lenguaje

¿Por qué C++ y no Python?

Python domina el ecosistema ML, pero C++ con LibTorch ofrece ventajas concretas: velocidad de inferencia nativa sin overhead de intérprete, integración directa con sistemas de alto rendimiento, y la posibilidad de desplegar modelos en entornos donde Python no es viable. Este proyecto demuestra que ML serio se puede hacer fuera del ecosistema Python.

Pipeline del modelo

1

Datos

Dataset HTRU2 con 17,898 muestras de candidatos a púlsar.

2

Preprocesamiento

Normalización de features y split train/test.

3

Entrenamiento

Red neuronal entrenada con LibTorch, optimizando cross-entropy loss.

4

Inferencia

Clasificación binaria de nuevos candidatos a púlsar en milisegundos.