A comprehensive end-to-end machine learning system for classifying exoplanets and predicting planetary radius using Kepler Objects of Interest (KOI) data.
The Stellar Verification Program uses advanced machine learning to:
- Classify KOI signals - Distinguish confirmed exoplanets from false positives
- Predict planetary radius - Estimate the planetary radius in Earth radii
Stellar/
βββ frontend/ # React.js web application
β βββ public/ # Static assets
β βββ src/ # React components
β β βββ components/ # Reusable components
β β βββ App.js # Main app component
β β βββ App.css # Styling
β βββ package.json # Frontend dependencies
βββ backend/ # Flask REST API
β βββ app.py # Main Flask application
β βββ requirements.txt # Python dependencies
βββ ml_pipeline/ # ML models and pipeline
β βββ preprocessing.py # Data preprocessing
β βββ inference.py # Model inference
β βββ training.py # Model training
β βββ eda.py # Exploratory Data Analysis
βββ data/ # Data directory (add your dataset here)
βββ README.md # This file
- Python 3.8+
- Node.js 14+
- PostgreSQL or SQLite
- Navigate to backend directory:
cd backend- Create Python virtual environment:
python -m venv venv
source venv/Scripts/activate # On Windows- Install dependencies:
pip install -r requirements.txt- Run Flask server:
python app.pyThe API will be available at http://localhost:5000
- Navigate to frontend directory:
cd frontend- Install dependencies:
npm install- Start development server:
npm startThe application will open at http://localhost:3000
- POST
/api/predict- Get classification and regression predictions{ "koi_period": 10.5, "koi_impact": 0.5, "koi_duration": 5.2, "koi_depth": 500, "koi_steff": 5778, "koi_srad": 1.0, "koi_smass": 1.0 }
- GET
/api/predictions- Get all predictions - GET
/api/predictions/<id>- Get specific prediction - GET
/api/statistics- Get aggregated statistics - GET
/api/health- Health check
- Handles missing values through imputation
- Feature normalization using StandardScaler
- Feature engineering for composite metrics
-
Classification: Random Forest Classifier
- Metric: F1-score, ROC-AUC
-
Regression: Random Forest Regressor
- Metric: RMSE, MAE
β Input validation with immediate feedback β Interactive prediction interface β Real-time visualization of results β Prediction history tracking β Statistical analytics dashboard β Responsive design
β RESTful API with CORS support β Input validation and preprocessing β Real-time model inference β Prediction history in database β Statistical aggregation
- F1-Score: Measures precision and recall balance
- ROC-AUC: Area under the receiver operating characteristic curve
- RMSE: Root Mean Squared Error
- MAE: Mean Absolute Error
Create a .env file in the backend directory:
FLASK_ENV=development
FLASK_DEBUG=1
DATABASE_URL=sqlite:///exoplanet_predictions.db
The system expects the following features:
koi_period- Orbital period (days)koi_impact- Impact parameterkoi_duration- Transit duration (hours)koi_depth- Transit depth (ppm)koi_steff- Star effective temperature (K)koi_srad- Star radius (solar radii)koi_smass- Star mass (solar masses)
Target variables:
koi_disposition- Classification target (CONFIRMED/FALSE POSITIVE)koi_prad- Planetary radius (Earth radii)
Run the frontend tests:
cd frontend
npm testIf you encounter CORS errors, ensure the Flask backend is running and accessible at http://localhost:5000
Delete exoplanet_predictions.db and restart the Flask app to reset the database
- Flask: Change port in
app.pyto a different port - React: Use
PORT=3001 npm start
See ml_pipeline/README.md for detailed ML pipeline documentation.
TEAM : RUSTY. Avinash Jha Ayush Belwal Ayush Kirti Singh
[Add license information]