Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

11 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🌌 A World Away — Exoplanet Classifier

NASA Space Apps Challenge 2025

Overview

A World Away is an artificial intelligence tool for detecting and classifying exoplanets using open data from NASA’s Kepler, K2, and TESS missions.

The app enables users to:

  • Train an AI model using real NASA data.
  • Predict whether an object is a confirmed exoplanet, a candidate, or a false positive.
  • Explore how physical parameters (radius, transit duration, stellar temperature, etc.) affect the classification.
  • Interact with predictions through an educational, web-based interface.

Objective

To accelerate and democratize exoplanet detection through interpretable machine learning, making it accessible both to researchers and enthusiasts.

Data Sources

Research references:

Model pipeline

  1. Preprocessing
  • Loads NASA’s Kepler dataset and ignores commented header lines.
  • Cleans missing or invalid values and normalizes key numeric features.
  • Filters to the subset of physically meaningful variables.
  1. Feature selection Each chosen feature corresponds directly to a measurable property in the transit method:
    • koi_period — orbital period (days)
    • koi_duration — transit duration (hours)
    • koi_depth — transit depth (ppm)
    • koi_prad — planet radius (Earth radii)
    • koi_srad — stellar radius (Solar radii)
    • koi_steff — stellar effective temperature (K)
    • koi_slogg — stellar surface gravity (log g)
  2. Model Benchmarking & Training
  • Trains and compares RandomForest, XGBoost, and CatBoost classifiers on the labeled classes: CONFIRMED, CANDIDATE, and FALSE POSITIVE
  • Selects the model with the best accuracy–interpretability trade-off based on validation metrics (Accuracy, F1, ROC-AUC).
  1. Export
  • Saves the best-performing model and the fitted label encoder in /models/.
  • Generates model_results.json and benchmark plots for documentation.
  1. Class Means
  • Stores per-class mean values for each feature, used to produce interpretative comparisons (e.g., how a candidate differs from typical confirmed planets).

Web Application

Built with Streamlit, the app allows:

  • CSV upload for batch predictions.
  • Manual input for single-candidate prediction.
  • Pie chart of predicted class probabilities.
  • Educational interpretation comparing user inputs with per-class averages.
  • Global and local SHAP visualizations for explainability.

Technical Stack

Component Technology
Backend / Model Python 3.10, scikit-learn, pandas, joblib
Frontend Streamlit + Plotly
Explainability SHAP (planned)
Styling Custom CSS

Installation & Run

git clone https://github.com/arnoop88/ExoAI.git
cd ExoAI
python3 -m venv venv
source venv/bin/activate
pip install -r requirements.txt
python3 src/train_model.py
python3 src/benchmark_models.py
python3 src/explain_model.py
streamlit run src/app.py

About

Team Leaf's approach for the project "A World Away: Hunting for Exoplanets with AI" of NASA Space Apps Challenge 2025

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages