Some P300Classifier quesitons

Posts: 9
Joined: 25 Jan 2011, 09:28

Some P300Classifier quesitons

Post by paolo.meriggi » 23 Aug 2011, 04:09

Dear BCI2000ers,
I have a couple of questions about (the great tool named) P300Classifier.

1) If I have several data files, is there a way to verify that all the acquired files might be purposefully used for the classification or rather that any of them is to be left apart because it might lead to worse classifications?

2) I'd like to compare several output files generated by the P300Classifier (from the same and/or different subjects). Is there an easy way to do that or rather should I read through the output files? Is there a manual or a description of the organization of such files?

Thanks for your attention and kind support



Posts: 13
Joined: 03 Oct 2009, 11:24

Re: Some P300Classifier quesitons

Post by cmpotes » 23 Aug 2011, 10:05


1. The current P300Classifier does not let you check what time samples (for each channel) give you a better model (i.e., reduction in the variance)
2. The only way to compare results from different data sets is by reading the output from each data set individually.

There is some documentation in ... classifier that might help you understand the P300Classifier

Please let me know any comment or suggestion you might have.


Posts: 1065
Joined: 12 Feb 2003, 11:06

Re: Some P300Classifier quesitons

Post by mellinger » 23 Aug 2011, 10:25

Dear Paolo,

ad 1):
I can assure you that all training data files enter into classifier training in the same way. To verify this, you may compare the output of the P300Classifier for different subsets of data files.

ad 2):
The output of the P300Classifier training procedure is a BCI2000 parameter file containing the following parameters:
* TransmitChList: This determines the subset of channels which are processed by the online system. This parameter should always match the subset of channels specified in the P300Classifier preferences.
* SpatialFilter: Determines whether there is a CAR filter used in the online system, or not. This is determined by the spatial filter setting in the P300Classifier preferences.
* LinearClassifier: This is the actual result of classifier training. It is a sparse representation of a linear classification vector, with its weights being organized into channels and time points. For details about how these are represented in the LinearClassifier parameter, see ... Classifier
LinearClassifier input channels correspond to the channels listed in TransmitChList.

To compare different LinearClassifier vectors with each other, it might be best to import parameter files into Matlab using the read_bciprm tool at tools/matlab/read_bciprm.m.
Then, you can use Matlab to convert the information in the LinearClassifier parameter into a matrix C with dimensions (Channels X EpochSamples). Iterate over LinearClassifier rows, and assign the row's weight value to its corresponding entry in C: C( InputChannel, InputElement ) = weight (output channel is always 1).

Now you may visualize C by plotting weights for individual channels over time (its rows), or by plotting weights for individual time points in space (its columns). Also, you can use whatever quantitative method for comparing matrices you want to choose.



Who is online

Users browsing this forum: No registered users and 0 guests