Workflow - ajdinm/cognitive_load_classification GitHub Wiki
Workflow
1. Feature extraction
In order to train and classify data based on input signals, process of feature extraction is to be performed first. This process can be skipped, as we offer Dummy data with necessary features. If you wish to use that data, copy everything onto src/
and then can skip to the section 2. Otherwise, follow forthcoming instructions.
1.1. Begin with the VCC_timeSegment.m file which was provided to us for the project.
1.2. On line 12 you must provide the full path to the directory where raw driving data is
1.3 After you run the script, all time segments from all the raw driving data are collected and saved.
1.4. Open the FeatureExtraction.m script.
1.5. On 8 line you must provide the directory of where you have the raw driving data
1.6. On line 9 you must fill out which scenario you want to extract features from. Either βSWβ, βHEβ or βCRβ.
1.7. The script needs to be run three times, one for each scenario. Remember to change the scenario at line 9.
2. Classification
In this section we describe two way of training methods. First, we describe how to train popular classifiers contain in MATLAB toolbox. Second approach is where we train manually implementent Support Vector Machine. Both approaches provide rather extensive evaluation of the results.
2.1. Toolbox classifiers
2.1.1. Open classify.m.
2.1.2. At line 9, fill in how big portion of the data set you want to keep for validation, a number between 0 and 1.
2.1.3. Fill in the scenarios you want to use at line 12, you can choose between HE, SW, CR, two of them or all three.
2.1.4. The result is presented in plots. Also, a result table is available in form of the Result
variable.
2.2. Manually implemented SVM
2.2.1. Open SVM_GroupB.m.
2.2.2 There are 7 parameters that can be changed between line 4 and 10.
k
for k-fold used in optimisation and feature selection
nrOfFeat
the number of features the sequential feature selection should return
CritInclude
set the threshold for the features that are selected, 85% is used to
obtain the result we used
PortionToHoldOut
for hold out validation,
FeatSel
set to true to use feature selection (Can't use it if FeatChoice=2)
RunBasicSVM
set to true to run the script with the basic implemented SVM as well
FeatChoice
1=only physological signals, 2= only vehicle signals, else all signals, if only physological signals or only vehicle signals are choosen, only the individual scenarios will be included.
2.2.3. The result is presented with a plot as well as in the tables ImplResult
and OptimisedResult
.
Due to inconsistency in the results the classification script might need to run a couple of times in order to obtain the presented results.