Skip to content

eceannmor/student-performance-prediction

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

41 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Student performance predition

A simple data science project, centred around a student performance dataset.
The goal is to analyse current conditions of students, and use the dataset together with different ML models to predict which students might benefit from additional help or a change of environment.
Current version of the project includes final exam score prediction based on students' factors.
This is a practice project in preparation to a diploma thesis, on the same topic, which will include a larger database and more complex analysis.

This project currently includes:

  • Data import and standardisation scripts
  • Data analysis using:
    • Random Sample Consensus
    • K-Nearest-Neighbours
    • Support Vector Machine

You will need the latest release of Java, python, as well as a local or remote PostgreSQL database. The drivers for proper database communication and the sample data are already included.

Prediction performance

performance analysis chart Data size: 32 intependent features, 3 dependent features (only 1 used for prediction), 6608 observations (split 80-20)

Random sample consensus was chosen for its ability to handle outliers better than other methods.
Best achived metrics:

  • Mean Squared Error: 2.8230
  • R2: 0.8007
  • Maximum Error: 30.1322

The result can be replicated by manually setting the random seed to 598.

Usage

  • Clone this repository

    git clone https://github.com/eceannmor/student-performance-prediction.git
    cd student-performance-prediction
  • ( ❗ This step is optional in the current release)
    Run a PostgreSQL database instance to use as the final storage for the data.

    ⚠️ Currently only non-containerised, localhost PostgreSQL databases are supported.
    TODO: replace server side COPY with client side \copy.

  • ( ❗ This step is optional in the current release)
    Copy sample_config as database.cfg into /src:

    • Windows: copy sample_config.cfg ./PRO1D/scr/database.cfg -a
    • Linux: cp sample_config.cfg ./PRO1D/src/database.cfg

    and fill out the database connection info and credentials in this format:

    dbname=<database name>
    hostname=<hostname>
    port=<port>
    username=<username>
    password=<password>
  • Execute the run.sh script:

    • Windows: ./run.sh
    • Linux: sudo bash run.sh

License

Free to use for personal / educational cases.
Do not reupload or submit as you own. Your professor will know.
Unsure? Ask » ekreceannmor@gmail.com

About

Practice project in preparation to a diploma thesis. Student performance analysis and prediction

Topics

Resources

Stars

Watchers

Forks