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.
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.
-
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 sideCOPY
with client side\copy
. -
( ❗ This step is optional in the current release)
Copysample_config
asdatabase.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>
- Windows:
-
Execute the
run.sh
script:- Windows:
./run.sh
- Linux:
sudo bash run.sh
- Windows:
Free to use for personal / educational cases.
Do not reupload or submit as you own. Your professor will know.
Unsure? Ask » ekreceannmor@gmail.com