Machine Learning Exam Score Predictor Website banner

Machine Learning Exam Score Predictor Website

11 devlogs
10h 39m 15s

This project us called Exam Score Predictor. It allows users to input data about themselves such as their age, sleep hours, time spent studying for the exam etc. and receive an AI prediction of their exam score as well as some tips on how to impro…

This project us called Exam Score Predictor. It allows users to input data about themselves such as their age, sleep hours, time spent studying for the exam etc. and receive an AI prediction of their exam score as well as some tips on how to improve it.
The UI is a light-academia-aesthetic-themed website; the project is easy and fun to use.

This project uses AI

I used some GitHub Copilot code completion and GitHub Copilot chat to help me debug.
I also generated some code, which I then edited, to make my website mobile responisve.

Demo Repository

Loading README...

Christie B

Shipped this project!

Hours: 10.65
Cookies: 🍪 270
Multiplier: 25.36 cookies/hr

Wow… what an insane journey that was.
I built an exam score predictor website that allows users to input data about themselves such as their age, sleep hours, time spent studying for the exam etc. and receive an AI prediction of their exam score.
Hackatime says I spent ~10 hours on this, but it was honestly more – the time I spent researching, finding data, cleaning data, and learning how to use the tools I needed to use is not reflected in that number. I also spent a lot of time trying to figure out how to do things, and I had to learn a lot of new skills along the way. The learning curve was probably the biggest challenge I faced!
I’m really proud of myself for making this, especially as it was my first exposure to ML.
Thank you everyone for your support!
P.S. I’m saving up for a Polaroid Go Gen 2, so I would really appreciate generous voting. I don’t want to seem greedy or anything, but you’ll really make my day by being kind <3

Christie B

I reflected on my project and thought about what I had learnt as well as what I created.
Here is a exert for those interested:

I learnt and revised lots of things while creating this project, including but not limited to:
-> How to create and refine a linear regression model using SciKit-Learn
-> How to find and clean data for machine learning projects
-> How to save a model using Pickle and load it in a backend
-> How to create a simple Flask and JS backend
-> How to create a simple yet effective UI using HTML and CSS
-> How to make a website responsive and accessible
-> How to make a website secure
-> How to deploy an app using PythonAnywhere

The project is not perfect, and there are many ways I could improve it, such as by using a more complex model to lower the MSE, finding better data, and adding more features. I think that the small amount of data made the model less accurate than it could have been, and I also think that there are some features that I could have added that would have made the model more accurate, such as the student’s previous exam scores or their average grade.

This project had a big learning curve, due to the fact that it was my first machine learning project.
However, I learnt to use available resources, both online and otherwise, to efficiently and effectively to find answers to my questions and learn how to do new things.
Some of the most prominent challenges included not knowing how to use new technologies and getting my model to be more accurate.

Thank you everyone for your support!
P.S. I’m saving up for a Polaroid Go Gen 2, so I would really appreciate generous voting. I don’t want to seem greedy or anything, but just so you know, you’ll really make my day by being kind <3

Attachment
0
Christie B

I prepared my app for deployment, adding requirements.txt and setting it up with PythonAnywhere.
It now works at christie.pythonanywhere.app!
I’m really happy that I was able to deploy it so easily and without those hours I spent crying over Nest, however powerful it may be :))
Yayyyyyy!

Attachment
0
Christie B

I made my website mobile responsive by generating some code with GitHub Copilot, and then editing it to suit my needs. It – the AI – basically created a whole bunch of media thingys with a minimum width of 768 pixels. I didn’t really like this, so I consolidated everything into one media thingy so that I can edit the mobile version of the website more easily.
It looks really nice now!
Let me know what you think :)

Attachment
0
Christie B

I added CSS to my website!
I used a light academia theme – a plaid background, and a colour palette cream, beige, and some darker brown accents.
I hope you like it!

Attachment
0
Christie B

I created a frontend, connecting my model to an interface using Flask.
It:

  • Jsonifies form data
  • Sends this form data to the model api
  • The api unpacks the json and creates a prediction from it
  • The prediction is jsonified
  • The frontend, seeing this, displays the stringified json prediction to the user

I hope to add CSS soon!

Attachment
0
Christie B

I finished creating and refining my AI model.
I
-> normalised my data
-> added more features

My MAE decreased to 8.3, which I’m happy with for now.
I will save the model with pickle and start working on my backend next.

Attachment
2

Comments

D-Pod
D-Pod 2 months ago

nice! this AI stuff is pretty tough… glad you figured it out!

Christie B
Christie B about 2 months ago

Thank you so much!
I really appreciate the support :)

Christie B

I:
-> finished importing all required models
-> generated a correlation matrix
-> used online tutorials and ChatGPT to learn how to train and evaluate a model
-> trained and evaluated my model
But the MAE is quite high, at an average of 9 points off when I’d like it to be more precise. I will need to find a way to improve my model.

Attachment
0
Christie B

I:
-> finished planning my project, finalising how I’m going to make it step-by-step
-> found and cleaned up data for my project
-> started installing necessary libraries for my project.

I’ve run into some issues I hope to fix later.

Attachment
0
Christie B

I continued planning my project.
I finalised:
-> what it will do (predict exam scores and give tips to help students based on their input)
-> what technologies it will use (Python/Flask, HTML/CSS, scikit-learn, etc.)
-> it’s structure

Attachment
0
Christie B

I started planning my project.
This involved defining my prior knowledge and interests to hone in on a specific goal – what do I actually want it to do? What am I able to do? What do I want to create?

Attachment
0