Description Author(s) See Also Examples

dbcsp is a package which offers a way to apply Distance-Based Common Spatial Patterns (DB-CSP) techniques in different fields, both classical Common Spatial Patterns (CSP) as well as DB-CSP.

Itsaso Rodriguez Moreno itsaso.rodriguez@ehu.eus

Itziar Irigoien itziar.irigoien@ehu.eus

Concepción Arenas carenas@ub.edu

`dbcsp`

, `print`

, `summary`

, `train`

, `selectQ`

, `predict`

, `plot`

, `boxplot`

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 | ```
# There is an example dataset called AR.data shipped with the package.
# It contains the skeleton data extracted from videos of people performing six different actions,
# recorded by a humanoid robot. So, it has 6 different classes.
# As the whole process is performed pairwise, first two classes are selected (some instances are
# saved to use later as test)
handshake <- AR.data$handshake[1:15]
ignore <- AR.data$ignore[1:15]
# Now, the dbcsp object can be created, where q represents the number of vectors used in
# the projection, the obtained filter will have 2*q dimension.
# By default, euclidean distance is used. To change it, just select another distance type.
# A mixture with euclidean distance and another one can be performed too, changing the mixture
# parameter value.
# Regarding the classification, train, predict and selectQ functions can be used.
# An LDA model can be train with the features extracted after performing the CSP, both with the
# train function or using the training=TRUE parameter when creating the dbcsp object
mydbcsp <- new('dbcsp', handshake, ignore, q=10, training=TRUE, fold = 1)
# Once the object is created, print and summary functions can be used to see some details
print(mydbcsp)
summary(mydbcsp)
# The predict function returns the predicted labels for the selected test data.
# And if true_labels are indicated, the obtained accuracy is also printed
handshake_test <- AR.data$handshake[41:45]
ignore_test <- AR.data$ignore[41:45]
test_data <- c(handshake_test, ignore_test)
true_labels <- c(rep('handshake',length(handshake_test)),rep('ignore',length(ignore_test)))
predictions <- predict(mydbcsp, test_data,true_labels)
# To help us deciding which is the best dimension to use when performing the CSP algorithm, the
# selectQ function can be used. Instead of using train_size to validate with train/test split,
# cross validation can be performed too.
bestQ <- selectQ(mydbcsp, Q=c(2,3,5), train_size=0.8)
# A plot can also be obtained, which displays the signals before and after the CSP projection
# With the vectors parameter it can be decided which dimensions to show and if we just want to
# plot the transformed signals, the before parameter must be set to FALSE
plot(mydbcsp,class=2,index=1,before=FALSE,vectors = 1:5, legend=TRUE)
# A boxplot can also be obtained to show the features achieved after the CSP (the variances of
# the transformed signals) which are used to perform the classification
# In the CSP algorithm the vectors work in pairs (the first q vectors maximize the variance of
# one class and minimize the variance of the other, while the last q vectors do the opposite),
# by default the vectors are showed in pairs, but this can be changed.
# The logarithm of the variances are plotted, but the value of the variances are shown
# when changing show_log parameter to FALSE
boxplot(mydbcsp, vectors=c(2,4,8))
``` |

Embedding an R snippet on your website

Add the following code to your website.

For more information on customizing the embed code, read Embedding Snippets.