Inspiration

The discovery of planets beyond our solar system has always fascinated humanity. Every confirmed exoplanet brings us one step closer to answering our biggest question: Are we alone in the universe? When I learned that NASA had made the Kepler Objects of Interest (KOI) dataset publicly available, it opened a door to the cosmos. I was inspired to explore how artificial intelligence could process this astronomical amount of sensor data. I didn't just want to build a script; I wanted to build Kepler's Oracle—an interactive, AI-driven observatory that automates exoplanet discovery and makes the underlying astrophysics accessible to everyone.

How I built it

Kepler's Oracle is a complete, production-ready machine learning pipeline and interactive web application.

Data Preparation & Feature Engineering: I started by cleaning the raw Kepler dataset, using median imputation for missing values to avoid outlier skew. I then injected real astrophysics by engineering custom features, such as the goldilocks_flag, which identifies if a planet falls in the habitable zone ($273\text{ K} < T_{eq} < 373\text{ K}$). Advanced Ensemble Modeling: To maximize accuracy, I moved beyond a single algorithm. I used SMOTE (Synthetic Minority Over-sampling Technique) to handle the severe class imbalance in astronomical data. Then, we trained a powerful Voting Classifier ensemble combining XGBoost, Random Forest, and LightGBM. The model calculates the final predicted probability $P(y=c)$ as the average of the predicted probabilities from the individual classifiers: $$ P(y=c) = \frac{1}{N} \sum_{i=1}^{N} P_i(y=c) $$ The Interactive Dashboard: I built a frontend using Streamlit and Plotly. The dashboard features an interactive Data Explorer, a Habitable Zone visualizer, and a live Prediction Simulator where users can tweak planetary parameters and generate custom "Planet Profiles" in real-time. Explainable AI (XAI): I integrated SHAP (SHapley Additive exPlanations) to crack open the "black box" of our ensemble model, proving visually that the model relies on sound physical features like transit depth and planetary radius rather than data artifacts.

Challenges we ran into

One of the biggest hurdles was the inherent class imbalance and noise in the real-world NASA data. The universe throws far more False Positives (like eclipsing binaries) at our sensors than actual habitable worlds. Initially, my models heavily favored the majority class. Implementing SMOTE and tuning hyperparameters via RandomizedSearchCV required several iterations to ensure the model wasn't just memorizing noise but actually learning the physics of planetary transits.

Additionally, translating complex machine learning outputs into a user-friendly format was difficult. Building the live Prediction Simulator meant I had to dynamically rescale and impute user inputs on the fly within the Streamlit app to match the exact format expected by our saved ensemble model.

What we learned

Building Kepler's Oracle taught me the entire lifecycle of a real-world Data Science project. I learned:

How to handle noisy, incomplete, and highly imbalanced scientific datasets. The power of Ensemble Learning and how combining different tree-based algorithms (XGBoost, LightGBM, Random Forest) yields vastly superior results to single models. The critical importance of Explainable AI (SHAP) in scientific research. In astrophysics, a model's prediction is useless if you can't prove why it made that choice. How to bridge the gap between backend machine learning scripts and beautiful, interactive frontend development using Streamlit.

Built With

Share this project:

Updates

Submission history