It has always been difficult for students, teachers and parents to know how "will" a student perform in the coming up examinations. If they can estimate the performance, they will able to figure out what isn't working well and how should it be improved -- that forms my inspiration towards coming up with this.
What it does
Pred-Stormance helps to predict the marks a student might get in the Final Exams with an accuracy of approx.85.24%, by asking the user to enter information in 30 different fields, ranging from gender, age, guardian info, Type of Residency to , even, usage of Internet. It also plots a chart which shows the decline or rise of marks, graphically, which will consist marks of Period 1(G1), Period 2(G2) and finally the predicted, Period 3(G3) marks.
How I built it
Pred-Stormance uses four libraries in total -- Scikit-Learn, Matplotlib, Pickle and Pandas. It uses Pandas to read the huge .CSV file which was feeded as data, into the model. After some preprocessing of data, using train_test_split from Sklearn.model_selection, I splitted the data into testing and training -- 20% for testing and 80% for training. Then the input train and output train data is fitted into the model, which is the crucial stage of “Training the model”. Afterwards, an accuracy score is obtained with the coefficient and intercept values[It is there in the Jupyter Notebook File]. Finally, I “Pickled”, or packed, the trained model into a .pkl file which can be later used, without training the model, to predict the performance. Then in a different python file, I imported vital libraries, “Unpickled”, or unpacked, the trained model as well as wrote a function to take input from user and plot the chart. That’s it, when I run the function it gives me the prediction with the graphical chart.
Challenges I ran into
It was my first time working with Linear Regression, especially with too many attributes i.e. 30, which was acting as a huge obstacle. I had worked with PassiveAgressiveClassifier, Logistic Regression and Decision Tree Classifier, so I had to figure out, how does Linear Regr work and even the usage of Intercepts and Coefficients -- Long Live Stack overflow -- Secondly, the data consisted lots of strings, which I had to replace by integers so that it can be put into the Regressor.
Accomplishments that I am proud of
I was successfully able to build the Machine Learning Model as well as pickle and unpickle it to use it for predictions, and this makes me feel proud.
What I learned
I learned the concept of Linear Regression and why is it used in a particular case, rather than using the Logistic Regression, PasAgrClass or DeciTreeClass
What's next for Pred-Stormance
I would like to deploy my Model using Flask framework and make it available to everyone. Secondly, I would like to add a couple of Analysis Tools which will consist of AI-driven performance analysis, tips and tricks to improve the performance, and also a concise summary on how is the student performing and what does he/she lack. This will help the teachers and parents to know what are improvement sections i.e. where does a student need to work upon.