🎉 A machine learning project to honor space exploration and planetary defense.
This repository contains an ML pipeline for classifying asteroids into:
- 🪐 NEO (0) – Near-Earth Objects
- ☄️ PHA (1) – Potentially Hazardous Asteroids
- 🌍 NHA (2) – Non-Hazardous Asteroids
Developed to celebrate Yuri’s Night — the "World Space Party" 🌍🚀
✅ Classifies asteroids using orbital and photometric data
✅ Uses ML models like KNN, SVM, Random Forest, and XGBoost
✅ Tackles class imbalance using SMOTE
✅ Adds meaningful features like MOID to SMA Ratio
✅ Visualizes patterns and skewness in the data
Asteroid data includes:
H– Absolute Magnitudea– Semi-Major Axisq– Perihelion Distancemoid– Earth MOIDdiameter,albedo,e,i, etc.
Classification logic:
- NEO:
q< 1.3 AU - PHA:
moid≤ 0.05 AU andH≤ 22.0 - NHA: All others
📁 Dataset Source: NASA CNEOS NEO Dataset
Initial class distribution was skewed.
Applied SMOTE to balance class ratios manually to:
- 🪐 NHA (2): 30%
- ☄️ PHA (1): 10%
- 🌍 NEO (0): 10%
🔗 Learn about SMOTE
- 📊 Heatmaps (Asteroid type vs Year)
- 📉 Histograms for skewness
- 📌 Correlation matrices
- 📊 Class bar plots
Built with Seaborn and Matplotlib
├── data/ ├── notebooks/ ├── src/ ├── visualizations/ └── README.md
# Clone the repo
git clone https://github.com/yourusername/yuri-night-asteroid-classifier.git
# Install dependencies
pip install -r requirements.txt
# Open Jupyter or run in Colab
---
Let me know if you want this saved in a `.md` file — or if you want dark/light mode badge support too.