Hey everyone! ![]()
I just deployed Student Success Predictor, an end-to-end machine learning app that predicts a student’s exam score from their daily habits — sharing it here in case it’s useful to anyone working on regression problems or looking for Streamlit UI ideas.
Live app: https://students-success-prediction-musfirah.streamlit.app/
The problem
Academic performance depends on more than just study hours — attendance, sleep, and mental health all play a role, but it’s hard to intuitively judge how much each factor matters. I wanted to quantify these relationships and let anyone test “what if” scenarios about their own habits.
What I built
- Explored the dataset (1,000 student records, 16 features) through histograms, category distributions, scatter plots, and box plots to understand which habits actually correlate with exam scores
- Selected the most relevant predictors: study hours per day, attendance percentage, mental health rating, sleep hours, and part-time job status
- Trained and tuned 3 regression models with GridSearchCV (5-fold cross-validation): Linear Regression, Decision Tree, and Random Forest
- Evaluated on RMSE and R² Score rather than just eyeballing predictions
- Saved the best-performing model with
joblibfor fast, reusable inference in the app
The Streamlit app has a simple, focused interface:
Interactive sliders — adjust study hours, attendance, sleep hours, and mental health rating
Part-time job toggle — see how working part-time affects predicted performance
Instant prediction — click “Predict Exam Score” and get a live result, clamped to a realistic 0–100 range
One thing I focused on: keeping the UI dead simple — five inputs, one button, one clear output — since the goal was letting anyone test their own habits in seconds without needing to understand the model underneath.
Which feature do you think has the strongest effect on exam scores — study hours or attendance? Let me know in the replies!
Would love feedback, especially on the UI/UX side — always looking to improve how I present ML results to non-technical users. ![]()
Support the Project:
If you find this project or the Streamlit UI implementation useful, please consider giving it a
on the GitHub repository! It keeps me motivated to build more open-source tools.
#MachineLearning #DataScience streamlit #Python #ScikitLearn #EdTech
