លំហសិក្សាធិការកម្ពុជា
V1.0
Student performance prediction is an important application of machine learning that can help educational institutions identify factors affecting academic achievement and provide timely support to students. This study, titled “Student Performance Prediction Using Machine Learning,” aims to develop and evaluate machine learning models for predicting students’ academic performance based on academic, personal, and learning-related factors. The study utilizes the open-source UCI Student Performance Dataset, collected from secondary school student reports, supplemented with custom-generated mock features representing online Learning Management System (LMS) engagement. The input features include age, gender, attendance, study hours, previous scores, sleep hours, tutoring, internet access, parent education, extracurricular activities, study time, past class failures, absences, and LMS login frequency. The study considers two possible target variables: final grade, represented as a continuous score from 0 to 100, and student status, classified as Pass or Fail. Four machine learning algorithms—Logistic Regression, Decision Tree, Random Forest, and Support Vector Machine (SVM)—will be implemented and compared to determine their predictive performance. The models will be evaluated using appropriate performance metrics to identify the most effective approach for student performance prediction. The expected outcome is to demonstrate how machine learning can utilize student-related data to predict academic outcomes and support early identification of students who may require additional academic assistance. This research contributes to the use of data-driven techniques in education and provides a foundation for developing more effective student monitoring and academic support systems.
Education plays a vital role in developing human resources and improving individual and social outcomes. However, student academic performance can be affected by many interconnected factors, including attendance, study time, previous academic achievement, family background, access to learning resources, and personal habits. The project presentation identifies poor attendance, limited study time, family background, and lack of learning resources as important practical concerns. It also notes that traditional evaluation often identifies poor performance only after examinations, making timely intervention difficult.
Machine learning provides an opportunity to analyze historical student information and learn patterns associated with academic outcomes. Instead of relying only on post-examination evaluation, a predictive model can be used as an early-warning mechanism. The proposed project therefore focuses on developing and comparing machine learning models that can predict student performance from available student characteristics.
The project is designed not only as a machine learning experiment but also as a simple prediction application. The planned technology stack combines Python and Scikit-learn for machine learning with FastAPI as a backend and Vue.js as a frontend. This architecture is intended to make the resulting model accessible through a practical user interface.
In many educational settings, student performance is evaluated primarily through examinations and periodic assessments. Students who are falling behind may therefore be recognized only after their performance has already declined. The project presentation identifies the absence of an early-warning system and the fact that multiple factors influence academic performance as central challenges.
The problem addressed in this research is how to use available student information to predict academic performance accurately enough to support earlier identification of students who may need additional assistance. A further challenge is determining which machine learning algorithm performs best for the selected dataset and identifying which input factors are most informative for prediction.
The project has potential significance for several groups. Teachers may use prediction as supplementary evidence when deciding which students deserve closer attention. School administrators may use aggregated model outputs to support academic monitoring and resource planning. Students and parents may use the information to understand potential performance risk. Educational researchers may use the project as an example of an end-to-end supervised learning workflow.
|
Stakeholder |
Potential Benefit |
|
Teachers |
Additional evidence for earlier identification and intervention. |
|
School administrators |
Support for academic monitoring and resource planning. |
|
Students |
Awareness of potential academic risk and learning factors. |
|
Parents |
Supplementary information for supporting learning at home. |
|
Educational researchers |
Example of educational data mining and comparative ML modeling. |
The study focuses on supervised classification for student performance prediction. The proposed input variables are age, gender, attendance, study hours, previous scores, sleep hours, tutoring, transportation, internet access, parent education, extracurricular activities, and family income when available. The proposed algorithms are Logistic Regression, Decision Tree, Random Forest, and SVM. The study covers data acquisition, cleaning, EDA, feature engineering, model development, tuning, evaluation, comparison, and integration into a simple prediction application.
The scope does not include causal inference, automatic educational decision-making, or a claim that the model can measure a student’s ability in a definitive manner. The final target definition must be selected before model training and used consistently throughout the experiment.
|
Target User |
Use of the Proposed System |
|
Teachers |
Review predicted performance and identify students for possible support. |
|
School administrators |
Monitor patterns and compare model performance. |
|
Students |
Understand potential performance risk. |
|
Parents |
Use information as supplementary support for learning decisions. |
|
Educational researchers |
Study predictive modeling and educational data mining. |
This section establishes the conceptual basis for predicting student performance with machine learning. The discussion follows the scope of the project presentation and focuses on the role of student-related features, classification, and comparison of several commonly used supervised learning algorithms.
Student academic performance is a multidimensional outcome. It can reflect prior achievement, learning behavior, attendance, access to resources, personal circumstances, and support received from family or educational institutions. The project therefore does not treat performance as a result of a single variable. Instead, it proposes combining multiple student characteristics as input features for prediction.
The proposed feature set includes both demographic and learning-related variables. Attendance and study hours represent learning engagement, while previous scores provide information about prior achievement. Sleep hours and extracurricular activities represent lifestyle and time allocation. Tutoring, internet access, parent education, transportation, and family income where available represent aspects of educational support and access to resources.
|
Feature |
Type / Description |
Expected Relevance |
|
Age |
Numerical |
Student demographic characteristic |
|
Gender |
Categorical |
Demographic characteristic |
|
Attendance |
Numerical |
Learning participation |
|
Study Hours |
Numerical |
Learning effort |
|
Previous Scores |
Numerical |
Prior academic achievement |
|
Sleep Hours |
Numerical |
Lifestyle factor |
|
Tutoring |
Categorical |
Additional academic support |
|
Transportation |
Categorical |
Access / daily routine factor |
|
Internet Access |
Categorical |
Access to learning resources |
|
Parent Education |
Categorical |
Family educational background |
|
Extracurricular Activities |
Categorical |
Time allocation / engagement |
|
Family Income |
Numerical/Categorical |
Resource availability, if available |
Machine learning can be applied to educational datasets to discover patterns and construct predictive models. In a supervised learning setting, the algorithm learns a relationship between input features and a known target variable. For this project, the target is intended to represent student performance, with the presentation specifying outputs such as High, Medium, Low or Pass/Fail.
Comparing several algorithms is important because different models make different assumptions about the relationship between features and outcomes. The proposed study therefore compares Logistic Regression, Decision Tree, Random Forest, and Support Vector Machine.
Logistic Regression is a supervised classification method that estimates the probability of a categorical outcome from a set of input variables. It provides a relatively interpretable baseline and can be useful for understanding how changes in input features are associated with the predicted class. In this project, Logistic Regression provides a baseline against which the other proposed classifiers can be compared.
A Decision Tree classifies observations through a sequence of decision rules based on feature values. Its tree structure can be relatively easy to interpret because a prediction can be traced through a series of splits. This makes it useful for an educational prediction system where understanding the decision process may be valuable.
Random Forest is an ensemble method that combines predictions from multiple decision trees. By aggregating many trees, it can model nonlinear relationships and interactions between variables while reducing reliance on a single tree. The proposed study includes Random Forest to test whether an ensemble approach can improve predictive performance.
Support Vector Machine (SVM) is a supervised learning algorithm that seeks a decision boundary capable of separating classes. Depending on the selected kernel and preprocessing, SVM can model complex relationships between features. It is included to provide another classification approach for comparison.
The project is motivated by the practical gap between evaluating performance after examinations and identifying students who may need assistance earlier. Rather than relying on a single indicator, the proposed system combines multiple student characteristics and compares several algorithms. The presentation does not claim that one algorithm is already superior; determining the best-performing model is itself one of the research questions.
|
Algorithm |
Role in Study |
Strength |
Main Consideration |
|
Logistic Regression |
Baseline |
Simple and relatively interpretable |
Linear decision structure |
|
Decision Tree |
Interpretable nonlinear model |
Rule-based reasoning |
Potential overfitting |
|
Random Forest |
Ensemble model |
Nonlinear patterns and feature importance |
Less transparent than one tree |
|
SVM |
Margin-based classifier |
Flexible decision boundary |
Scaling and kernel selection |
The methodology follows a supervised machine learning workflow: data acquisition, exploratory analysis and cleaning, feature preparation, model training, model comparison, evaluation, and integration into a prediction interface. The project work plan assigns data acquisition and initial EDA to Week 1, feature engineering and baseline training to Week 2, model tuning and comparison to Week 3, interface construction to Week 4, testing to Week 5, and final presentation and submission to Week 6.
1. Define the prediction problem and final target variable.
2. Acquire and document the selected dataset.
3. Inspect data types, missing values, duplicates, invalid values, and class distribution.
4. Conduct exploratory data analysis.
5. Clean and preprocess the data.
6. Encode categorical variables and scale features where required.
7. Split the dataset into training and testing subsets.
8. Train Logistic Regression, Decision Tree, Random Forest, and SVM.
9. Tune hyperparameters using a validation strategy on training data.
10. Evaluate final models on the isolated test set.
11. Compare accuracy, precision, recall, and F1-score.
12. Analyze important predictive factors.
13. Save the final preprocessing pipeline and trained model.
14. Expose the model through FastAPI and connect the Vue.js frontend.
15. Test and document the complete system.
The project presentation proposes using a publicly available dataset from Kaggle and identifies the Student Performance Prediction Dataset as the suggested source. The paper therefore treats the Kaggle dataset as the planned data source. The final experimental paper should report the exact number of observations, class distribution, missing values, and final feature list after the dataset has been downloaded and inspected.
Suggested source identified in the project presentation: Kaggle Student Performance Prediction Dataset.
The planned input features are age, gender, attendance, study hours, previous scores, sleep hours, tutoring, transportation, internet access, parent education, extracurricular activities, and family income if available. The presentation specifies that the prediction output may be High, Medium, Low or Pass/Fail. The final implementation should select one target definition before training and use the same definition consistently during preprocessing, training, and evaluation.
|
Category |
Variables |
|
Demographic |
Age, Gender |
|
Academic / engagement |
Attendance, Study Hours, Previous Scores |
|
Lifestyle |
Sleep Hours, Extracurricular Activities |
|
Support / access |
Tutoring, Internet Access, Transportation |
|
Family background |
Parent Education, Family Income if available |
|
Target |
High / Medium / Low OR Pass / Fail |
Before model training, the dataset should be checked for missing values, duplicated observations, inconsistent category labels, and unsuitable data types. Numerical variables should be converted to appropriate numeric formats, while categorical variables should be encoded for algorithms that require numerical input. Where scaling is required, particularly for SVM and potentially Logistic Regression, scaling should be performed within a training pipeline to avoid data leakage.
The dataset should then be separated into training and testing subsets. The split must be performed before fitting preprocessing transformations so that information from the test set is not used during training.
Exploratory Data Analysis (EDA) will be used to understand distributions, relationships, class balance, and potential anomalies. Descriptive statistics and visualizations can be used to examine attendance, study hours, previous scores, and other variables in relation to the selected target. The project work plan places initial EDA and cleaning in Week 1.
Feature engineering will prepare the raw variables for machine learning. Categorical variables can be encoded using suitable techniques such as one-hot encoding, while numerical variables can be retained or scaled depending on the algorithm. Feature selection should be guided by the available dataset and the research question concerning which factors most strongly influence performance.
|
Model |
Purpose in the Study |
Key Consideration |
|
Logistic Regression |
Baseline classification model |
Interpretable linear decision boundary |
|
Decision Tree |
Rule-based nonlinear classification |
Interpretability and possible overfitting |
|
Random Forest |
Ensemble classification |
Nonlinear patterns and feature importance |
|
SVM |
Margin-based classification |
Scaling and kernel selection |
A baseline version of each algorithm should first be trained using the prepared training data. The models can then be tuned using an appropriate validation strategy, such as cross-validation on the training set. Hyperparameters should be selected without using the final test set. The final test set should be used only for unbiased comparison after model development is complete.
For the proposed classification task, the project specifies accuracy, precision, recall, and F1-score as evaluation metrics.
|
Metric |
Purpose |
|
Accuracy |
Measures the proportion of correctly classified observations. |
|
Precision |
Measures how many predicted positive/class instances are correct. |
|
Recall |
Measures how many actual positive/class instances are identified. |
|
F1-score |
Balances precision and recall through their harmonic mean. |
The final paper should report the metric values for each model after training. Since the current project presentation contains proposed methodology rather than completed experimental measurements, this version does not invent numerical results.
The planned system separates the prediction interface from the machine learning backend. Vue.js is proposed for the frontend, FastAPI for the backend, and Python with Scikit-learn for machine learning. A user enters student information through the frontend. The backend receives the input, applies the same preprocessing used during training, passes the processed data to the selected trained model, and returns the predicted performance category.
|
Layer |
Technology |
Role |
|
Frontend |
Vue.js |
Collect student information and display results |
|
Backend |
FastAPI |
Expose prediction API and manage requests |
|
Machine Learning |
Python + Scikit-learn |
Preprocess data, train models, and predict |
|
Development |
VS Code |
Development and project management |
The proposed system transforms the machine-learning experiment into a practical prediction application. The design separates the user interface, prediction API, preprocessing pipeline, and trained model. This separation supports maintainability and allows the final model to be updated without redesigning the complete application.
|
ID |
Requirement |
Description |
|
FR-01 |
Enter student information |
User enters the required student features. |
|
FR-02 |
Validate input |
System checks required fields and valid ranges. |
|
FR-03 |
Submit prediction |
Frontend sends structured data to the backend. |
|
FR-04 |
Generate prediction |
Backend preprocesses input and invokes the trained model. |
|
FR-05 |
Display result |
Frontend displays the predicted performance category. |
|
FR-06 |
Compare algorithms |
System presents model performance metrics. |
|
FR-07 |
Show important factors |
System displays feature importance or explanations where implemented. |
|
Requirement |
Description |
|
Usability |
The interface should be understandable to non-technical educational users. |
|
Performance |
Normal prediction requests should return efficiently. |
|
Reliability |
The same valid input and model version should provide reproducible output. |
|
Maintainability |
Frontend, backend, preprocessing, and model components should remain separated. |
|
Scalability |
Additional models or features should be addable in future versions. |
|
Security |
Student information should be minimized and protected. |
|
Explainability |
Predictions should be presented carefully and not as causal judgments. |
|
Layer |
Technology |
Responsibility |
|
Presentation Layer |
Vue.js + TypeScript |
Collect student information and display results |
|
API Layer |
FastAPI |
Validate requests and call the prediction service |
|
ML Layer |
Python + Scikit-learn |
Preprocess, train, evaluate, and predict |
|
Data Layer |
CSV / selected dataset |
Training and evaluation data |
|
Step |
Component |
Action |
Output |
|
1 |
User |
Enter student information |
Input values |
|
2 |
Vue.js |
Validate and package input |
Structured request |
|
3 |
FastAPI |
Receive and validate request |
Validated data |
|
4 |
Preprocessing pipeline |
Encode / scale features |
Model-ready vector |
|
5 |
ML model |
Predict class |
Prediction |
|
6 |
FastAPI |
Format response |
Prediction response |
|
7 |
Vue.js |
Display result |
User-facing output |
1. Load the final dataset.
2. Separate input features and target.
3. Split data into training and testing subsets.
4. Fit preprocessing on training data only.
5. Train four candidate classifiers.
6. Tune hyperparameters using the training data.
7. Evaluate final models on the isolated test set.
8. Select and save the final model and preprocessing pipeline.
The FastAPI service is intended to expose a prediction endpoint that accepts a structured representation of the selected student features. The endpoint should validate the request, apply the saved preprocessing pipeline, invoke the selected model, and return the predicted performance category. If probability estimates are exposed, they should be labeled as model probabilities rather than certainty.
The frontend should provide a student-information form corresponding to the final model features. After submission, the system should display the predicted category and, where implemented, a concise explanation of important predictive factors. The interface should avoid language suggesting that the prediction is a definitive judgment.
|
Stage |
User Action |
System Response |
|
1. Download |
Download standard format |
Send request to API |
|
2. Upload |
Upload Dataset |
post request to API |
|
3. Submit |
Click Prediction |
Preprocess and predict |
|
4. Result |
Review prediction |
Display category |
|
5. Analysis |
Review factors |
Display comparison and important factors |
This section defines the results that should be reported after implementation. The project presentation specifies the expected system outputs but does not provide completed experimental values. Consequently, numerical accuracy, precision, recall, F1-score, confusion matrices, and feature-importance values are intentionally left for insertion after the models are trained and evaluated.
The completed study should report the final number of records, the number of input features, target classes, missing-value counts, and the distribution of the target classes. These values should be taken directly from the downloaded and cleaned dataset.
|
Model |
Accuracy |
Precision |
Recall |
F1-score |
|
Logistic Regression |
To be measured |
To be measured |
To be measured |
To be measured |
|
Decision Tree |
To be measured |
To be measured |
To be measured |
To be measured |
|
Random Forest |
To be measured |
To be measured |
To be measured |
To be measured |
|
SVM |
To be measured |
To be measured |
To be measured |
To be measured |
The best-performing model should be selected based on the evaluation criteria defined for the final target formulation. Accuracy alone may not be sufficient when class distributions are imbalanced, so precision, recall, and F1-score should also be considered. The final comparison should explain not only which model has the highest score but also whether the difference is meaningful for the intended educational use.
The final system is expected to show important factors affecting student performance. For tree-based models, feature importance can provide a direct ranking. For other models, coefficients or model-agnostic explanation methods may be considered. The interpretation must be based on the actual trained model and should not be presented as causal evidence.
The planned application should allow users to enter student ID for prediction, and display the resulting performance category. It should also provide a comparison of model performance and show important factors associated with risk prediction. These functions correspond to the expected outputs defined in the project presentation.
The proposed study addresses a practical educational problem: identifying students who may be at risk before poor outcomes become evident through formal examinations. Its main strength is the combination of multiple categories of information rather than reliance on a single performance indicator. Attendance, study hours, previous scores, learning support, access to resources, and other characteristics can collectively provide a richer representation of student circumstances.
The comparison of four different algorithms is also important. Logistic Regression provides a simple baseline, Decision Tree provides an interpretable rule-based model, Random Forest provides an ensemble alternative, and SVM provides a margin-based approach. The comparison can reveal whether a relatively simple model is sufficient or whether a more complex model provides substantially better predictive performance.
However, prediction should not be interpreted as a definitive judgment about a student's ability. A model can identify patterns in historical data, but it cannot establish that a particular factor causes a student's performance. Educational decisions should therefore use predictions as supporting information alongside teacher judgment and direct engagement with students.
Another limitation is that the project presentation does not yet provide completed experimental results. The final empirical conclusions must therefore be based on the actual dataset, preprocessing decisions, trained models, and evaluation results. If the final dataset differs from the planned source or if the target definition changes, the methodology and results should be updated accordingly.
Internal validity may be threatened by leakage between training and testing data, repeated tuning against the test set, or inconsistent preprocessing. External validity may be limited if the dataset differs from the target educational population. Construct validity may be affected by the definition of performance categories. These threats can be reduced through an isolated test set, transparent target definitions, reproducible pipelines, and careful documentation.
A student prediction system can affect how learners are perceived. Ethical use therefore requires privacy protection, minimal data collection, transparency about model limitations, and human oversight. Predictions should support educational conversations rather than automatically determine opportunities, interventions, or labels.
The contribution of this project is an end-to-end educational prediction framework rather than a single algorithm. It connects a public student dataset, feature preparation, comparative classification, evaluation, model interpretation, and a deployable prediction interface. The project can therefore serve as a practical demonstration of how machine learning can move from data analysis to an application while maintaining attention to evaluation and responsible use.
This paper presents a proposed machine learning approach for predicting student academic performance using multiple demographic, academic, lifestyle, support, and access-related features. The project is motivated by the need for earlier identification of students who may require academic support. It proposes four classification algorithms—Logistic Regression, Decision Tree, Random Forest, and Support Vector Machine—and evaluates them using accuracy, precision, recall, and F1-score.
The project also extends beyond model training by proposing a simple prediction application using Vue.js, FastAPI, Python, and Scikit-learn. The planned system will allow users to enter student information, obtain a predicted performance category, compare algorithm performance, and examine important factors affecting prediction.
Future work should complete model training and tuning, validate the models on unseen data, investigate class imbalance, and compare performance across alternative target definitions. Additional work could include collecting richer longitudinal student data, integrating actual LMS engagement data rather than mock or unavailable variables, adding explainability features, and conducting user evaluation with teachers or educational administrators. These improvements could make the system more reliable and useful as an educational early-warning tool.
[1] Kaggle. (n.d.). Student Performance Prediction Dataset. Kaggle. Dataset source identified in the Group 13 project presentation: https://www.kaggle.com/datasets/prajwalkanade/student-performance-prediction-dataset.
[2] Scikit-learn Developers. (n.d.). Scikit-learn: Machine Learning in Python. User Guide and API documentation.
[3] Breiman, L. (2001). Random Forests. Machine Learning, 45, 5–32. https://doi.org/10.1023/A:1010933404324.
[4] Cortes, C., & Vapnik, V. (1995). Support-vector networks. Machine Learning, 20, 273–297. https://doi.org/10.1007/BF00994018.
[5] Pedregosa, F., et al. (2011). Scikit-learn: Machine Learning in Python. Journal of Machine Learning Research, 12, 2825–2830.
The proposed workflow is: (1) collect student data, (2) clean and preprocess the dataset, (3) perform exploratory analysis, (4) engineer and encode features, (5) split data into training and testing sets, (6) train Logistic Regression, Decision Tree, Random Forest, and SVM models, (7) evaluate models using accuracy, precision, recall, and F1-score, (8) select the most appropriate model, and (9) deploy the prediction model through a FastAPI backend and Vue.js frontend.
|
Variable |
Expected Type |
Description |
|
Age |
Numerical |
Student age |
|
Gender |
Categorical |
Gender category |
|
Attendance |
Numerical |
Attendance measure |
|
Study Hours |
Numerical |
Study time measure |
|
Previous Scores |
Numerical |
Prior academic achievement |
|
Sleep Hours |
Numerical |
Sleep duration |
|
Tutoring |
Categorical |
Additional tutoring |
|
Transportation |
Categorical |
Transportation category |
|
Internet Access |
Categorical |
Internet availability |
|
Parent Education |
Categorical |
Parent education level |
|
Extracurricular Activities |
Categorical |
Participation in extracurricular activities |
|
Family Income |
Numerical/Categorical |
Income information if available |