Skip to content

Repository files navigation

🎯 Rank Predictor

Machine Learning web application that predicts a student's expected JEE Rank using historical exam-related data such as marks, percentile, year, and total number of candidates.

The project demonstrates a complete end-to-end Machine Learning workflow including data preprocessing, model training, evaluation, visualization, prediction export, and deployment using Streamlit.


πŸ“Œ Overview

Rank Predictor uses regression-based Machine Learning models to estimate a student's probable JEE rank based on exam statistics.

The project was built to:

  • understand regression algorithms
  • Data visualization
  • practice preprocessing pipelines
  • implement real-world ML workflows
  • deploy an ML model using Streamlit

The application currently uses:

  • Linear Regression
  • Random Forest Regressor

where Random Forest provides significantly better accuracy and prediction performance.


πŸš€ Features

βœ… JEE Rank Prediction
βœ… Machine Learning Regression Models
βœ… Data Preprocessing Pipeline
βœ… Feature Scaling & Missing Value Handling
βœ… Data Visualization using Matplotlib
βœ… CSV Export of Predictions
βœ… Streamlit Interactive UI
βœ… Real-time Rank Prediction
βœ… Model Evaluation Metrics
βœ… End-to-End ML Workflow


πŸ› οΈ Technologies Used

Technology Purpose
Python Programming Language
Pandas Data Handling
NumPy Numerical Operations
Matplotlib Data Visualization
Scikit-learn Machine Learning
Streamlit Web Application UI

πŸ“‚ Project Structure

Rank-Predictor/
β”‚
β”œβ”€β”€ app.py
β”œβ”€β”€ model.py
β”œβ”€β”€ Jee_data.xlsx
β”œβ”€β”€ linear_regression_predictions.csv
β”œβ”€β”€ random_forest_predictions.csv
β”œβ”€β”€ requirements.txt
β”œβ”€β”€ README.md
└── images/

βš™οΈ Machine Learning Workflow

Data Collection
        ↓
Data Cleaning
        ↓
Feature Engineering
        ↓
Train-Test Split
        ↓
Preprocessing Pipeline
        ↓
Model Training
        ↓
Model Evaluation
        ↓
Prediction Export
        ↓
Streamlit Deployment

πŸ“Š Dataset Features

The dataset includes:

Feature Description
Year Examination Year
Marks Student Marks
Percentile JEE Percentile
Total_Candidates Total Students Appeared
Rank Target Variable

πŸ“ˆ Data Visualization

The project includes multiple visualizations:

  • Marks vs Percentile
  • Marks vs Rank
  • Percentile vs Rank
  • Marks Distribution

These plots help understand:

  • feature relationships
  • rank trends
  • score distribution
  • dataset patterns

πŸ€– Machine Learning Models

1️⃣ Linear Regression

Linear Regression was used as a baseline regression model.

Advantages

  • Simple
  • Fast
  • Easy to understand

Limitations

  • Performs poorly on nonlinear relationships
  • Can predict negative values

2️⃣ Random Forest Regressor

Random Forest Regressor is the primary model used in the project.

Advantages

  • Handles nonlinear relationships
  • Better prediction accuracy
  • Reduces overfitting
  • More stable predictions

Performance

Random Forest significantly outperformed Linear Regression in:

  • RMSE
  • MAE
  • RΒ² Score

πŸ“ Evaluation Metrics

The models are evaluated using:

Metric Description
RMSE Root Mean Squared Error
MSE Mean Squared Error
MAE Mean Absolute Error
RΒ² Score Model Accuracy Score

🧹 Data Preprocessing

A complete preprocessing pipeline was implemented using:

  • SimpleImputer
  • StandardScaler
  • ColumnTransformer
  • Pipeline

This automates:

  • missing value handling
  • feature scaling
  • preprocessing workflow

🌐 Streamlit Web App

The project includes an interactive Streamlit web application where users can:

βœ… Select Exam Year
βœ… Enter Marks
βœ… Enter Percentile
βœ… Enter Total Candidates
βœ… Predict Expected JEE Rank


πŸ–₯️ Streamlit Preview

🎯 JEE Rank Predictor

Select Year: 2025
Enter Marks: 250
Enter Percentile: 99
Enter Total Candidates: 1400000

🎯 Predicted JEE Rank: 10366

▢️ Installation & Setup

1️⃣ Clone Repository

git clone https://github.com/your-username/Rank-Predictor.git

2️⃣ Navigate to Project Directory

cd Rank-Predictor

3️⃣ Install Dependencies

pip install -r requirements.txt

4️⃣ Run Streamlit Application

streamlit run app.py

πŸ“¦ Generate Requirements File

pip freeze > requirements.txt

πŸ“€ Prediction Export

The project exports prediction results into CSV files:

  • linear_regression_predictions.csv
  • random_forest_predictions.csv

The exported files include:

  • actual rank
  • predicted rank
  • prediction error

πŸ“ˆ Example Prediction

Year Marks Percentile Total Candidates Predicted Rank
2025 250 99 1400000 ~10366

πŸ”₯ Future Improvements

  • Hyperparameter Tuning using GridSearchCV
  • XGBoost Integration
  • CatBoost Regressor
  • Deep Learning Models
  • Cloud Deployment
  • Live Rank Analysis
  • User Authentication
  • Advanced Analytics Dashboard
  • Model Persistence using Joblib
  • Docker Deployment

πŸ’‘ Key Learning Outcomes

This project helped in learning:

βœ… Regression Models
βœ… Machine Learning Pipelines
βœ… Data Visualization
βœ… Feature Engineering
βœ… Model Evaluation
βœ… Streamlit Deployment
βœ… End-to-End ML Workflow
βœ… Real-world ML Project Structure


πŸ“š Concepts Used

  • Supervised Learning
  • Regression
  • Ensemble Learning
  • Feature Scaling
  • Data Preprocessing
  • Model Evaluation
  • Machine Learning Deployment

πŸ“œ License

This project is open-source and available under the MIT License.


πŸ‘¨β€πŸ’» Author

Arpit Shirbhate

  • Data Science Enthusiast
  • Machine Learning Learner
  • Open Source Contributor

⭐ Support

If you found this project useful:

⭐ Star the repository
🍴 Fork the project
πŸ› οΈ Contribute improvements
πŸš€ Share with others

About

redictor is a Machine Learning-based web application that predicts a student's expected JEE rank based on various exam-related parameters such as marks, percentile, year, and total number of candidates.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages