Celesta — Exoplanet Disposition Classifier
Inspiration
Every confirmed exoplanet begins as a tiny dip in a distant star's brightness. NASA's Kepler mission collected thousands of these signals, but distinguishing genuine planets from false positives remains a challenging classification problem.
We wanted to apply machine learning to real astronomical data instead of simplified classroom datasets. This project allowed us to combine data science, artificial intelligence, and astronomy to build a reproducible model capable of classifying Kepler Objects of Interest while emphasising explainability and responsible model development.
What it does
Celesta is a machine learning pipeline that classifies NASA Kepler Objects of Interest into three categories:
- ✅ Confirmed Planet
- 🟡 Candidate
- ❌ False Positive
The project performs data preprocessing, exploratory data analysis, feature engineering, model training, evaluation, and explainability. Rather than simply maximising accuracy, the focus is on building a reliable and interpretable classifier that generalises well to unseen observations.
How we built it
The project follows a complete end-to-end machine learning workflow.
Dataset Preparation
- Imported the curated NASA Exoplanet Archive dataset.
- Explored feature distributions and missing values.
- Removed duplicate and irrelevant attributes.
- Cleaned the dataset for reproducible training.
Exploratory Data Analysis
We investigated:
- Feature distributions
- Class balance
- Missing values
- Correlations between astronomical measurements
Visualisations helped us understand the structure of the data before training any models.
Preventing Data Leakage
One of the most important parts of the project was identifying target leakage.
Columns including:
koi_pdispositionkepler_namekoi_comment
contained information that could directly reveal the correct answer. Removing these columns ensured the model learned meaningful astronomical relationships instead of memorizing labels.
Model Development
Multiple classification approaches were evaluated before selecting the final model based on overall performance and interpretability.
The completed workflow includes:
- Data preprocessing
- Feature engineering
- Model training
- Cross-validation
- Performance evaluation
- Confusion matrix
- Feature importance analysis
Challenges we ran into
Some of the biggest challenges included:
- Handling missing values
- Managing class imbalance
- Preventing target leakage
- Selecting informative features
- Avoiding overfitting
- Maintaining reproducibility
Working with real scientific data required significantly more preprocessing than typical educational datasets.
Accomplishments that we're proud of
- Built a complete machine learning pipeline from raw NASA data.
- Successfully detected and removed target leakage.
- Produced an interpretable classification model.
- Generated meaningful visualisations and evaluation metrics.
- Created a reproducible workflow suitable for future improvements.
What we learned
This project strengthened our understanding of:
- Data preprocessing
- Feature engineering
- Exploratory Data Analysis
- Classification algorithms
- Model evaluation
- Explainable AI
- Responsible machine learning practices
We also learned that careful data preparation is often more important than choosing increasingly complex algorithms.
What's next for Celesta
Future improvements include:
- Hyperparameter optimization
- Ensemble learning techniques
- SHAP explainability
- Probability calibration
- Automated feature engineering
- Deep learning models
- Interactive web dashboard for prediction and visualisation
Ultimately, we hope to extend Celesta into an educational tool that demonstrates how machine learning can assist astronomers in discovering new worlds.
Built With
- ai
- artificial
- astronomy
- chatgpt
- classification
- claude
- data
- engineering
- exoplanets
- explainable
- feature
- intelligence
- jupyter
- learning
- machine
- matplotlib
- nasa
- notebook
- numpy
- pandas
- python
- science
- scikit-learn
- seaborn
- xgboost

Log in or sign up for Devpost to join the conversation.