how to create custom Box for feature selection

Making & changing box plugins and external apps
Post Reply
KJeffrey
Posts: 74
Joined: Wed Jul 20, 2022 6:47 pm

how to create custom Box for feature selection

Post by KJeffrey »

Thomas or whoever is able to respond to this topic:

We are being held up implementing our neurofeedback scenario as it requires a custom Box. After initial filtering and Feature-Aggregating we need to computer a statistical measure and use it to threshold the most significant features to send on to the Classifier-Processor Box, using SVM in our case. We had been advised to create this custom box - let's call it Threshold - using the Python-Scripting Box. We eventually found out that this, as well as the Matlab-Scripting Box, do not allow for the statistical measure and feature culling we need. We have to wait for all the data to come through before we can compute the statistic, whereas these Scripting Boxes only work on a frame-by-frame basis like most of the other Boxes. The only Box we are aware of that can do this is the Classifier Box itself, which we can signal to begin training after the last of the data has come through to it.

It also appears that we cannot perform the feature selection using these Scripting Boxes as they do not support that output type. Only the existing Feature-Selection Box seems to be able to do this, and it only works on a channel basis while we need to specify a random set of features from the aggregated feature vector.

We came up with a potential workaround by running the signal processing and output the aggregated features to a Mat-file (smok_clas_svm_mablabX). In Matlab this file was used as input to the statistical test and feature selection and output as a reduced sized feature vector. This Mat-file was then converted to GDF and fed to a separate scenario that did the SVM training (reduced_feat_classifier). Lastly, the model was input to (smok_clas_svm_process) using a custom Python Box acting as a feature selector. This ultimately failed as we could not actually select the features.

Our only hope now seems to be using a regular custom OpenViBE Box. Before we start on this, we need to confirm that this type of Box will be able to overcome the limitations of the Python and Matlab Scripting Boxes.

In summary, we think we need a custom Box that can
1. wait until receiving all the data before beginning its calculation of the statistical test
2. take a user-defined % P and select the top P% of the features
3. pass these on in a new feature vector to the Classifier Processor.

Please respond as soon as possible as this is holding up our work.
Thanks,
-Jeff

KJeffrey
Posts: 74
Joined: Wed Jul 20, 2022 6:47 pm

Re: how to create custom Box for feature selection

Post by KJeffrey »

scenarios mentioned above
Attachments
reduced_feat_classifier.xml
(21.1 KiB) Downloaded 156 times
smok_clas_svm_matlabX.xml
(80.01 KiB) Downloaded 162 times
smok_clas_svm_train.xml
(84.66 KiB) Downloaded 165 times

KJeffrey
Posts: 74
Joined: Wed Jul 20, 2022 6:47 pm

Re: how to create custom Box for feature selection

Post by KJeffrey »

last file, seems to be limited to 3 at a time?
Attachments
smok_clas_svm_process.xml
(49.03 KiB) Downloaded 185 times

KJeffrey
Posts: 74
Joined: Wed Jul 20, 2022 6:47 pm

Re: how to create custom Box for feature selection

Post by KJeffrey »

Thomas,

We are still trying to make our work-around work (described in the large paragraph in my initial message of this topic), but are hampered by our ability to see what is going on in some of the boxes. In particular we cannot figure out how to display or save to a file the stimulus or feature vector types. Can you give us some guidance on this?

-Jeff

Post Reply