#raw data set was taken from https://ieee-dataport.org/open-access/su-ais-bb-mas-syracuse-university-and-assured-information-security-behavioral-biometrics
Tested on Ubuntu 20.04 but following should work on all major platforms.
# Create a virtual environment
$ python3 -m venv venv
$ source venv/bin/activate
# venv\Scripts\activate (in Windows)
# Install all requirements
$ pip install -r requiements.txt
$ python main.py --dataset-path dataset/full_bbmas_dataset/ --mode train --exp-name "demoexp" $ python main.py --dataset-path dataset/full_bbmas_dataset/ --mode test --exp-name "demoexp"
- Train model (learn patterns) for user_id 16
$ python main.py --dataset-path dataset/full_bbmas_dataset/ --user 11 --mode train --exp-name "demoexp"
- Test model for user_id 11 (if you find out any user is not performing well test that user again to improve results)
$ python main.py --dataset-path dataset/full_bbmas_dataset/ --user 11 --mode test --exp-name "demoexp"
Setup following key parameters in the config.json
file:
- No - Number of events in an observation
- Nh - Number of events to hop to move to next observation
- num_encoder_features - Number of output features after encoding feature vector
- corrupt_bad_probability - Probability of corrupting a given sample
- num_episodes - Number of episodes to train the model
- c_update - Number of episodes after which agent (DDQN) updates its target net
- eps_start - Initial exploration probability
- eps_end - End exploration probability
- eps_decay - Decay rate of exploration probability
- Better corruption technique
- Summary features
- Augmentation in training
- Language model
- Time Warping: Simulating variable typing speed by stretching or shrinking the time intervals between key presses.
- Jittering: Adding random variations to the timing of key presses to simulate different typing habits.
- Key Swap: Interchanging the keys pressed during a typing sequence to simulate different typing patterns.
- Key Insertion/Deletion: Adding or removing key presses in a sequence to simulate typing errors or variations in typing speed.