This project is an end-to-end Machine Learning solution designed to predict student academic performance based on various academic, behavioral, and demographic factors. It features a comprehensive ML pipeline, a professional Streamlit web application, Explainable AI (SHAP) integration, and automated PDF reporting capabilities.
Educational institutions often struggle to identify at-risk students before final evaluations. Traditional methods of performance tracking are reactive rather than proactive.
- Predict final academic performance accurately.
- Identify at-risk students early.
- Understand the key factors affecting student performance.
- Support data-driven interventions.
- Provide explainable predictions to educators and administrators.
The base dataset is the Student Performance Dataset (originating from Kaggle/UCI), which includes demographics and test scores. It has been augmented with realistic engineered features to better capture student behavior:
attendance: Percentage of classes attended.assignment_score: Average score on continuous assignments.internal_assessment: Internal exam performance.participation_score: Classroom engagement metric.study_hours: Self-reported weekly study hours.
Several advanced features are derived to improve prediction capabilities:
- Overall Internal Score: Average of core subject scores.
- Consistency Score: Inverse of standard deviation across subjects.
- Engagement Score: Weighted combination of attendance and participation.
- Academic Risk Index: Risk metric based on attendance, study hours, and assessments.
- Performance Index: General performance metric.
- Study Effectiveness Score: Ratio of predicted performance to study hours.
- Risk Category: Classification into Low, Medium, or High risk.
Comprehensive Univariate, Bivariate, and Multivariate analyses are provided in the Jupyter Notebook, featuring:
- Distribution analysis of academic scores and attendance.
- Correlation heatmaps to identify relationships between behavioral metrics and final performance.
- Pairplots and categorical visualizations (boxplots, violin plots).
- Linear Regression
- Random Forest Regressor
- XGBoost Regressor
Models are evaluated based on:
- R² Score (Primary selection criteria)
- Root Mean Squared Error (RMSE) (Secondary criteria)
- Mean Absolute Error (MAE)
- Mean Squared Error (MSE)
- Adjusted R²
- Cross-Validation Mean and Standard Deviation
Integration of SHAP (SHapley Additive exPlanations) provides interpretability:
- Summary Plots & Feature Importance
- Dependence Plots
- Waterfall Plots for local explanations
(Note: Streamlit features, PDF generation, and deployment instructions are part of subsequent phases).
Student_Performance_Prediction/
├── Dataset/ # Raw and processed data, download scripts
├── Notebook/ # Jupyter notebook for ML pipeline
├── Scripts/ # Training and utility scripts
├── Model/ # Serialized models and scalers
├── Streamlit_App/ # Web application and pages
├── Documentation/ # Reports and presentation contents
├── requirements.txt # Project dependencies
├── README.md # Project documentation
└── .gitignore
- Clone the repository.
- Create a virtual environment:
python -m venv venv - Activate the virtual environment:
- Linux/Mac:
source venv/bin/activate - Windows:
venv\Scripts\activate
- Linux/Mac:
- Install dependencies:
pip install -r requirements.txt
- Download data:
python Dataset/download_data.py - Open Notebook:
jupyter notebook Notebook/Student_Performance_Prediction.ipynb
- Integration with external LMS (Learning Management Systems).
- Real-time streaming data ingestion.
- Extending predictions to specialized departmental subjects.