A Second Look at the Performance of Neural Networks for Keystroke Dynamics Using a Publicly Available Dataset



The purpose of this document is to guide the reader how to repeat the test that we have performed in the study with the title “A Second Look at the Performance of Neural Networks for Keystroke Dynamics Using a Publicly Available Dataset”. In the following sections, we provide information on how to run the test procedure and the files and functions included in the package.

The implementation environment

We made all our implementation in MATLAB (version 7.6.0) mathematical programming environment.

The dataset

We used the dataset that was collected by Killourhy and Maxion and is available at http://www.cs.cmu.edu/~keystroke/#sec2. But we needed to make a slight modification. We have to erase the first column, which is only informative, because it includes alphabetic characters, which are hard to place in a matrix in MATLAB. The actual dataset that we used is available via this link.

The source package

The source package is available via this link. It is compressed in ZIP format, so you need an archiver to extract it. The source package includes the main files, distance measurement files and some utilities we used. In order to measure equal error rates we used the receiver operating characteristics implementation available at: http://svnext.it-sudparis.eu/svnview2-eph/ref_syst/Tools/PerformanceEvaluation/src/EER_DET_conf.m with slight modification on it.

Running the test procedure

After downloading the source package, to run the test procedure:

1.    Open MATLAB environment.

2.    Navigate to the source code directory

3.    Run the script with the name “test_learners”

The script runs the tests for all the training algorithms, makes analysis of variance and plots the box diagram.


You can reach the authors via e-mail for any questions:

bicakci (at) metu.edu.tr

e159566 (at) metu.edu.tr

A few notes:

Please note that this implementation is part of our more general study on Keystroke Dynamics. Therefore it may contain additional variables and functions not strictly related with the mentioned study.

We are not highly professional at MATLAB programming language. Therefore the implementation may not be in the most elegant way. We are open to suggestions.