Skip to content

This is a web based elective course recommender system implemented with flask and Sklearn

Notifications You must be signed in to change notification settings

Frost199/Elective-Course-Recommender-System

Repository files navigation

Elective-Course-Recommender-System

This is a web based elective course recommender system implemented with flask and Sklearn

The Project is a case study for the Department of Computer Science, University of Nigeria Nsukka. This project involves two part, the first part deals with the selection of Area of Specialization for a Masters student, this is done by asking series of questions and then a ranking system is used to generate an area of specializtion from the persons score.

Clustering

This is done to analyse the previous records of students in the selected area of specialization and a pie chart is shown to the user to give a detailed anaysis of the rate of failure to success in the area of specializtion selected.

Below is a screenshot of a course clustered of past sudents record for a compulsory course in an Area of sepcialization. The cluster shows the performance of students in their test to exam scores.

clustered_example

Model Selection

The second part of the project has to do with the Selection of elective courses in the preferred area of specialization. Here, the data is binned and the courses are ranked based on the model decision trees which was evaluated and then the top four courses are selected.

The models used for training are:

  • Decision Trees
  • Support Vector Machine (Linear and Kernel)
  • K-Nearest Neighbour
  • Naïve Bayes
  • Logistic Regression

Evaluation Metrics

This is a way of evaluating our models for the best model to be used for our predictions, A basic confusion matrix is shown below

Predicted Class
Class 1 Class 0
Actual Class Class 1 True Positive (TP) False Negative (FN)
class 0 False Positive (FP) True Negative (TN)

For this project this is the Confusion matrix below confusion_matrix

Accuracy

 \frac{True Positive + True Negative}{ Total Points}

Precision

 \frac{True Positive}{ True Positive + False Positive}

Recall

 \frac{True Positive}{ True Positive + False Negative}

F1 Score

 2*\frac{Precision * Recall}{ Precision + Recall}

Evaluation Metrics for our project

Evaluation Metrics Models
Linear SVM Kernel SVM Decison Trees Logistic Regression Naïve Bayes K-Nearest Neighbours
Accuracy 93.307% 97.633% 99.409% 37.008% 99.409% 99.213%
Precision 93.307% 97.633% 99.409% 37.008% 99.409% 99.213%
Recall 0.741 0.783 0.912 0.147 0.912 0.906
F1 Score 0.7 0.74 0.902 0.093 0.902 0.896

Flask

Here the Admin creates the students as uts assumed that each student is registered for the session No Registration was performed.

The following below are the task list:

  • Login
  • Update Profile
  • Online Quiz
  • Admin Dashboard
  • Create Users
  • Delete Users
  • Regex matching for Registration Number
  • Online Prediction
  • Online viewing of pie charts for clustered analysis
  • Validation Emails
  • saving individual scores after each predictions for personalised performance anyalysis
  • Admin tracking students preferences

How to run

  • First make sure you run database.py first to create a database file
  • Secondly make sure the "run_fist_time.txt" is empty,do not delete
  • then run python run.py in he root folder