Machine Intelligence
We Built an AI to Hunt Exoplanets
An autonomous machine learning system trained on 2,392 NASA TESS light curves. 9660.0% AUC. Here's how it works.
40
Experiments
9660.0%
AUC Score
How It Works
NASA TESS Data
2,392 light curves from the Transiting Exoplanet Survey Satellite
Light Curves
Time-series brightness measurements - a planet crossing its star causes a tiny dip
Feature Extraction
24+ engineered features capturing transit shape, depth, noise, and stellar properties
AutoResearch Loop
AI agent runs 40 experiments autonomously - testing hypotheses, tuning models
Best Model
4-model ensemble (XGBoost + RF + GBM + ExtraTrees) with 96.6% AUC
4,629 Candidates
Unclassified Planet Candidates scored by planet probability
NASA TESS Data
2,392 light curves from the Transiting Exoplanet Survey Satellite
Light Curves
Time-series brightness measurements - a planet crossing its star causes a tiny dip
Feature Extraction
24+ engineered features capturing transit shape, depth, noise, and stellar properties
AutoResearch Loop
AI agent runs 40 experiments autonomously - testing hypotheses, tuning models
Best Model
4-model ensemble (XGBoost + RF + GBM + ExtraTrees) with 96.6% AUC
4,629 Candidates
Unclassified Planet Candidates scored by planet probability
Model Performance
9660.0%
Validation AUCⓘ
92.1%
Recallⓘ
87.8%
Precisionⓘ
40
Experiments
Experiment Journey
Phase 1 — Algorithm Optimization
40 experiments on 1,693 training targets. AutoResearch autonomously tested hypotheses — feature engineering, model types, hyperparameters. Hard ceiling at ~92.9% AUC. The algorithm hit its limit with the available data.
Phase 2 — Extended Dataset (+41%)
Dataset expanded to 2,392 targets via NASA S3. Same model architecture, more training data. AUC jumped to 96.6% — proving that data volume, not algorithmic complexity, was the bottleneck.
What is AUC?
A single number that captures how well the model distinguishes real planets from false positives. 1.0 = perfect, 0.5 = random coin flip. Our 96.6% means the model is highly reliable.
The Threshold Decision
A model doesn't just say "planet" or "not planet" - it outputs a probability. The threshold is where we draw the line.
Threshold 0.50 (standard)Finds 86% of planets
Misses 14% of real planets
Threshold 0.32 (our choice)Finds 92.1% of planets
Misses only 7.9% of real planets
Why lower? In planet hunting, missing a real signal is worse than investigating a false one. A false positive costs a few hours of follow-up. A missed planet is a discovery lost forever. We tuned our model to be sensitive.
Glossary — what do these terms mean?
AUC
Area Under the Curve. Measures model accuracy from 0–100%. 96.6% means we correctly classify planets vs. false signals 96.6% of the time.
SDE
Signal Detection Efficiency. How clearly a transit signal stands out from noise. SDE > 50 is a strong detection, > 100 is exceptional.
TESS
Transiting Exoplanet Survey Satellite — NASA's space telescope launched 2018, surveys the sky for transiting exoplanets.
TOI
TESS Object of Interest — a star identified by NASA as potentially hosting a planet based on TESS data.
TLS
Transit Least Squares — a statistical algorithm that searches light curves for the characteristic U-shaped dip of a planetary transit.
XGBoost
A machine learning algorithm (eXtreme Gradient Boosting). Excellent at pattern recognition in structured data like our transit features.
Recall
How many real planets we find out of all real planets. 92.1% recall = we catch 92 of every 100 real signals.
Precision
How many of our 'planet' predictions are actually correct. 87.8% precision = ~88% of our flagged signals are genuine.
Transit
When a planet passes in front of its star, blocking a tiny fraction of the starlight — creating a brief, repeating dip in brightness.
Light Curve
A chart showing a star's brightness over time. The 'dip' in a light curve is the signature of a transiting planet.
False Positive
A signal that looks like a planet but isn't — could be a binary star, background noise, or instrument artifacts.
ML Score
Our model's confidence that a candidate is a real planet (0.0 to 1.0). We flag everything above 0.32 for further analysis.
Want to Contribute?
The code is open source - run it yourself, improve the model, hunt planets. The ML pipeline and this frontend are both on GitHub.