Status: All recruitment tasks completed β
Comprehensive solutions for DJS Nova Co-Comm recruitment tasks, featuring exploratory data analysis, machine learning, and astronomical data processing.
- About
- Repository Structure
- Completed Tasks
- Requirements
- Quick Start
- Usage
- Results & Evaluation
- Contributing
- License
- Contact
This repository contains complete solutions for DJS Nova technical AI tasks, demonstrating expertise in:
- Exploratory Data Analysis (EDA) on astronomical datasets (SDSS)
- Machine Learning for regression and classification
- Data visualization with matplotlib, seaborn, and plotly
- Feature engineering and selection techniques
- Unsupervised learning for clustering celestial objects
Each task is documented with detailed Jupyter notebooks including code, visualizations, explanations, and results.
DJS_NOVA/
βββ Technical(AI)/
β βββ Task_1/ # Astronomical object classification & EDA
β β βββ task1.ipynb # Main analysis notebook
β β βββ task1.md # Task description
β β βββ Task 1.csv # SDSS dataset
β β βββ Metadata.pdf # Dataset documentation
β βββ Task_2/ # Stellar parameter prediction
β βββ task2.ipynb # Regression modeling notebook
β βββ task2.md # Task requirements
β βββ task2.csv # Stellar spectra dataset
βββ .gitignore # Git ignore rules
βββ requirements.txt # Python dependencies
βββ LICENSE # MIT License
βββ README.md # This file
Dataset: SDSS (Sloan Digital Sky Survey) - 100,000 celestial objects
Objectives:
- Perform comprehensive exploratory data analysis
- Visualize celestial coordinates on 3D sphere
- Analyze photometric bands (u, g, r, i, z)
- Create color-color diagrams
- Handle missing values and outliers
- Apply unsupervised learning (clustering)
Key Findings:
- Successfully visualized 100K objects on celestial sphere
- Identified patterns in STAR, GALAXY, and QSO classes
- Removed highly correlated features (gβuβz, rβi)
- Created interactive 3D visualizations with Plotly
Notebook: Technical(AI)/Task_1/task1.ipynb
Dataset: Stellar spectra with physical parameters
Objectives:
- Predict surface gravity (logg) using regression
- Predict effective temperature (Teff) using regression
- Apply feature selection techniques
- Evaluate model performance (RMSE, RΒ², MAE)
Approach:
- Baseline: Linear Regression
- Advanced: Random Forest Regressor with hyperparameter tuning
- Feature engineering: proper motion, metallicity, photometric errors
- Outlier handling: IQR capping and percentile winsorization
Notebook: Technical(AI)/Task_2/task2.ipynb
- Python 3.8+
- pip or conda
jupyter
jupyterlab
numpy
pandas
matplotlib
seaborn
plotly
scikit-learn
scipy
umap-learn # Better dimensionality reduction
skimpy # Enhanced data summaries
summarytools # Statistical summaries
polars # Fast dataframe operations
xgboost # Gradient boosting (bonus)
git clone https://github.com/N1KH1LT0X1N/DJS_NOVA.git
cd DJS_NOVA# Using venv
python -m venv .venv
.venv\Scripts\activate # Windows
source .venv/bin/activate # macOS/Linux
# Or using conda
conda create -n djs_nova python=3.10
conda activate djs_novapip install -r requirements.txtjupyter lab
# or
jupyter notebookNavigate to:
Technical(AI)/Task_1/task1.ipynbfor Task 1Technical(AI)/Task_2/task2.ipynbfor Task 2
Open notebooks in Jupyter Lab/Notebook and run cells sequentially. Each notebook is self-contained with:
- Clear section headers
- Inline comments
- Visualization outputs
- Result interpretations
Run notebooks without GUI:
# Execute and save output
jupyter nbconvert --to notebook --execute Technical\(AI\)/Task_1/task1.ipynb --output task1_executed.ipynb
# Convert to HTML
jupyter nbconvert --to html Technical\(AI\)/Task_1/task1.ipynbTask 1 - EDA:
# Load and explore SDSS data
df = pd.read_csv('Task 1.csv')
from skimpy import skim
skim(df) # Enhanced summary statistics
# 3D celestial sphere visualization
import plotly.graph_objs as go
# ... (see notebook for full code)Task 2 - Regression:
# Standardization pipeline
from sklearn.preprocessing import StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.ensemble import RandomForestRegressor
pipe = Pipeline([
('scaler', StandardScaler()),
('model', RandomForestRegressor())
])
pipe.fit(X_train, y_train)- Data Quality: Handled 25% missing values in
cam_col - Feature Reduction: Dropped 7 highly correlated features
- Clustering: Applied KMeans, DBSCAN for unsupervised classification
- Visualizations: Interactive 3D sphere, correlation matrices, color-color diagrams
- Surface Gravity Model: Random Forest with optimized hyperparameters
- Temperature Model: (results pending - see notebook)
- Feature Importance: Top predictors identified
- Outlier Treatment: IQR capping with multiplier=2.5
Metrics:
- Cross-validation RMSE, RΒ², MAE
- Test set performance
- Residual plots and diagnostics
This repository represents completed recruitment tasks. Suggestions for improvements are welcome:
- Fork the repository
- Create a feature branch (
git checkout -b feature/improvement) - Commit changes (
git commit -m 'Add improvement') - Push to branch (
git push origin feature/improvement) - Open a Pull Request
- Follow PEP 8 for Python code
- Use descriptive variable names
- Add comments for complex logic
- Include docstrings for functions
This project is licensed under the MIT License - see the LICENSE file for details.
Author: Nikhil
GitHub: @N1KH1LT0X1N
Repository: DJS_NOVA
- DJS Nova for providing the recruitment tasks
- SDSS for the astronomical dataset
- scikit-learn and plotly communities for excellent libraries
β If you find this repository helpful, please consider giving it a star!