ex0huntapp
Exoplanet Candidate Classification
Status: Project Completed
ex0huntapp is a web-based machine learning tool developed for the NASA Space Apps Challenge 2025 under the "Worlds Away" challenge. It assists scientists and researchers in quickly classifying exoplanet candidates into one of three categories: CONFIRMED PLANET, CANDIDATE, or FALSE POSITIVE.
The application features a robust ML pipeline utilizing stacked ensemble methods for high-accuracy predictions, built upon foundational planetary and stellar flux data.
✨ Key Features
- Custom CSV Upload & Mapping: Users can upload any CSV dataset containing exoplanetary data and easily map their column headers to the model's required input features.
- Stacked Ensemble Prediction: Utilizes high-performance ML models (XGBoost, Random Forest, CatBoost) in a stacking architecture to achieve highly accurate consensus predictions.
- Model Stacking Options: Provides two distinct meta-model options for flexible prediction strategies.
- Detailed Output: Returns a ZIP file containing individual CSV prediction files for each base model and a final CSV with stacked model predictions and certainty scores.
- Transparent Metrics: Displays performance metrics (Accuracy, Classification Report) for the selected stack, ensuring transparency in prediction quality.
⚙️ Technical Architecture
Backend (Python/Flask)
The backend handles file processing, feature engineering, model inference, and serves the prediction API.
- Framework: Flask with Flask-CORS enabled for frontend integration
- Data Processing: Pandas and NumPy for CSV handling, Scikit-learn's StandardScaler for normalization
- Feature Engineering: Dynamically generates complex polynomial and ratio features from 15 base features
- Base Models: XGBoost, Random Forest, CatBoost (pre-trained, loaded via joblib)
- Meta Model: Custom Multi-Layer Perceptron (MLP) implemented in PyTorch
- API Endpoint: /predict (POST) handles the entire pipeline from file upload to ZIP output
Frontend (HTML/CSS/JavaScript)
The user interface provides an easy-to-use portal for prediction.
- Structure: Standard HTML5
- Styling: Custom CSS with a space-themed aesthetic using "Press Start 2P" font
- Logic: Pure JavaScript handles file reading, dynamic column mapping, async API calls, and file download management
💻 Model Features
The application requires 15 core base features (and their associated error margins) to run the prediction pipeline:
| Technical Name | Descriptive Name | Definition |
|---|---|---|
| insol / insol_err* | Insolation Flux (Earth Flux) | Stellar insolation received by the planet, scaled to Earth |
| period / period_err* | Orbital Period (days) | The time required to complete one orbit |
| prad / prad_err* | Planetary Radius (Earth Radii) | Radius of the planet relative to Earth |
| steff / steff_err* | Stellar Temperature (K) | Effective temperature of the host star |
| srad / srad_err* | Stellar Radius (Solar Radii) | Radius of the host star relative to the Sun |
Model Stacking Architecture
Stack 1: XGBoost + Random Forest → MLP
XGBoost and Random Forest predictions are fed into a Multi-Layer Perceptron for final classification.
Stack 2: XGBoost + CatBoost → MLP
XGBoost and CatBoost predictions are fed into a Multi-Layer Perceptron for final classification.
Application Screenshots
Visual overview of the ex0huntapp interface and functionality.
Setup and Installation
Prerequisites
Python 3.8+ and pip installed
Installation Steps
- Clone the repository
- Install dependencies:
pip install -r requirements.txt - Run the Flask server:
python backend/app.py - Access the frontend by opening
frontend/index.htmlin your browser
🌍 This project represents a contribution to exoplanet research by making advanced machine learning classification accessible through a user-friendly web interface. By combining multiple state-of-the-art models in an ensemble architecture, ex0huntapp delivers robust predictions to help researchers identify genuine exoplanet candidates from noisy observational data.
🚀 Developed as part of NASA Space Apps Challenge 2025, demonstrating the power of collaborative innovation in space exploration and planetary science.