NASA Exoplanet AI

  1. Home
  2. NASA Exoplanet AI

NASA Exoplanet AI

An end-to-end system that classifies objects from the NASA Exoplanet Archive into three classes: CONFIRMED, CANDIDATE and FALSE_POSITIVE. It was developed in response to a 2025 NASA exoplanet challenge. A Python script prepares the archive tables, a fully connected network written in C++ without machine-learning frameworks does the classification, and a local web interface lets a user try it on manual input or a CSV file.

On a class-balanced set of 4500 objects, evaluated on a held-out 20% split over five runs, the network reaches 71.1% ± 1.1% accuracy (chance level 33.3%). The weakest class is CANDIDATE. The full method, results and limitations are published as a technical note on Zenodo.

  • Category :Machine Learning / Astronomy Data
  • Stack :C++17, Python, JavaScript
  • Data :NASA Exoplanet Archive: Kepler, K2, TESS
  • Model :14-64-32-16-3 fully connected network
  • Result :71.1% ± 1.1% held-out accuracy
  • Publication :Technical note on Zenodo (DOI)
  • Status :Published / local web interface

Core Features

The system keeps the whole path visible: from three differently named archive tables to one feature vector, a network without hidden framework code, and an interface that shows class probabilities.

  • Three archive tables are mapped to one vector of 14 features: orbital period, transit duration and depth, planet radius, insolation, temperatures, stellar parameters, position, signal-to-noise ratio and false-positive flags.
  • A class-balanced sample of 4500 objects (1500 per class) with median filling, log transform and standardization.
  • A 14-64-32-16-3 sigmoid network trained with back-propagation and full-batch gradient descent, parallelized with OpenMP.
  • A local web interface: manual entry, pasted archive tables, CSV upload and a summary card per object.
  • An evaluation protocol with five different splits and initializations.

“The result is reported on a held-out split, over several runs, with the limitations written down.”

Design Note - Honest Evaluation

Architecture

The Python script nasa_exoplanet_pipeline.py reads the archive CSV files, maps their column names to common features, normalizes them and writes a C++-ready training file. The C++ program trains the network and stores the weights in a text file; a separate C++ predictor loads them. A small Python web server calls the predictor and renders the results. The two illustrations below show the data path and the software stack. The learning curve and the confusion matrix in the gallery above come from the real evaluation runs: the curve is averaged over five runs and the matrix is summed over them.

Evaluation Flow

  • Split 4500 normalized objects into 3600 training and 900 test objects, stratified by class.
  • Train for a fixed 15 000 epochs on the training part only.
  • Evaluate once on the held-out part.
  • Repeat with five split seeds and different random initializations.
  • Report mean and standard deviation, per-class precision and recall.

Known Limitations

  • Zero values are treated as missing and replaced by the median.
  • Normalization constants were computed before the split.
  • Right ascension and declination are used as inputs.
  • Evaluation is on a balanced sample, not the natural class distribution.
  • No baseline models were trained yet.

Related Projects

Secure Telemetry & Internet Relay

Secure Telemetry & Internet Relay

C++ / Rust / Secure Data Transfer
Sound-to-Action Voice Commands

Sound-to-Action Voice Commands

Python / Audio ML / Local
Neuron: Offline Cognitive AI

Neuron: Offline Cognitive AI

Offline AI / Memory / Modular Architecture

Project Summary

Send a direct message about this project and it will be delivered to my email.