The proposed neural network was trained to simultaneously perform two related tasks:
- Classification: Predict the learner's performance category (Excellent, Good, Average, Needs Support).
- Regression: Predict the learner's final performance score.
Number of records: 5010 (5000 after cleaning)
Number of columns: 18 Columns
Data question: How can we increase the engagement and learner performance in courses
- Python
- Pandas (Data cleaning and descriptive analysis)
- Numpy (Converting pytorch tensors to numpy array for scikit-learn)
- Matplotlib (Visuallizing data)
- Seaborn (Visuallizing data)
- Scikit-learn (Data preprocessing pipelines and evaluation metrics)
- Pytorch (Model development and training)
- Torchview (Visualling model architecture)
- Filling missing values in the data with mean for numerical columns and mode for categorical columns
- Removing duplicates
- Converting videos column from categorical (11 videos) to numerical (11)
- Distribution of final scores
- Probabillity of courses completion rate
- Correlation analysis using heatmaps
- Engagement analysis
A NN model using pytorch was trained with two prediction heads (A classification head and regression head) and 3 shared layers
What the model predicts:
- Engagement score
- Final score
- Learner Performance
- Precision
- Accuracy
- Recall
- MSE
- MAE
- R2 score
Note: The model achieved balanced performance across the four learner categories, with F1-scores ranging from 0.63 to 0.75. Performance differences among classes are primarily influenced by class imbalance and the complexity of distinguishing students with similar learning characteristics.
- Clone the repository
git clone https://github.com/youssef124wael/Learner-Performance-Analytics
cd learner-performance-analytics- Create a virtual environment (recommended)
python -m venv venvActivate the environment:
Windows
venv\Scripts\activateLinux/macOS
source venv/bin/activateGit bash
source venv/Scripts/activate- Install the required dependencies
pip install -r requirements.txt
