Accuracy results

The following table lists the results from Table 2.

library(reactable)
library(readr)
# load data

accu <- read_csv("C:/Users/djd955/Downloads/yifan.csv")
## New names:
## * `` -> ...2
## * `` -> ...3
## * `` -> ...4
## * `` -> ...5
## * `` -> ...6
## * ...
## Rows: 28 Columns: 10
## -- Column specification --------------------------------------------------------
## Delimiter: ","
## chr (1): Datasets
## dbl (9): ...2, ...3, ...4, ...5, ...6, ...7, ...8, ...9, ...10
## 
## i Use `spec()` to retrieve the full column specification for this data.
## i Specify the column types or set `show_col_types = FALSE` to quiet this message.
# save as dataframe

options(digits=2)

accu_df <- data.frame(accu)

names(accu_df)
##  [1] "Datasets" "...2"     "...3"     "...4"     "...5"     "...6"    
##  [7] "...7"     "...8"     "...9"     "...10"
# change column names

colnames(accu_df)[2:10] <- c("Number-of-incidents","FCN-w-o","FCN-w","MLSTM-w-o","MLSTM-w","MLSTM-FCN-w-o","MLSTM-FCN-w","TAPNET-w-o","TAPNET-w")

# formating 

library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
accu_df %>% 
  mutate_if(is.numeric, round, digits = 3)
##                Datasets Number-of-incidents FCN-w-o FCN-w MLSTM-w-o MLSTM-w
## 1            ArtWordRec                 575   0.980 0.982      0.82    0.86
## 2          BasicMotions                  80   0.968 0.966      0.84    0.85
## 3              CharTraj                2858   0.990 0.990      0.97    0.98
## 4               Cricket                 180   0.910 0.910      0.70    0.71
## 5         DuckDuckGeese                 100   0.740 0.766      0.67    0.69
## 6            EigenWorms                 259   0.544 0.552      0.46    0.46
## 7              Epilepsy                 275   0.794 0.842      0.67    0.69
## 8  EthanolConcentration                1751   0.624 0.658      0.34    0.35
## 9         FaceDetection                9414   0.562 0.562      0.58    0.58
## 10      FingerMovements                 416   0.648 0.656      0.61    0.61
## 11         HandMovement                 234   0.468 0.488      0.37    0.41
## 12          Handwriting                1000   0.284 0.288      0.21    0.22
## 13            Heartbeat                 409   0.812 0.818      0.82    0.82
## 14       InsectWingbeat               50000   0.108 0.138      0.12    0.12
## 15       JapaneseVowels                 640   0.882 0.890      0.94    0.95
## 16                 LSST                4925   0.444 0.456      0.53    0.53
## 17               Libras                 360   0.902 0.906      0.55    0.71
## 18         MotorImagery                 378   0.640 0.648      0.61    0.62
## 19               NATOPS                 360   0.886 0.898      0.79    0.82
## 20              PEMS-SF                 440   0.930 0.946      0.58    0.70
## 21            PenDigits               10992   0.984 0.982      0.98    0.98
## 22              Phoneme                6668   0.088 0.092      0.10    0.11
## 23         RacketSports                 303   0.748 0.774      0.78    0.79
## 24   SelfRegulationSCP1                 561   0.872 0.874      0.90    0.90
## 25          SelfRegSCP2                 380   0.568 0.586      0.57    0.60
## 26          SelfRegSCP2                8798   0.974 0.982      0.96    0.96
## 27        StandWalkJump                  27   0.400 0.400      0.69    0.65
## 28  UWaveGestureLibrary                 440   0.624 0.618      0.81    0.82
##    MLSTM-FCN-w-o MLSTM-FCN-w TAPNET-w-o TAPNET-w
## 1          0.972        0.98       0.98     0.99
## 2          0.966        0.97       1.00     0.99
## 3          0.992        1.00       0.99     0.99
## 4          0.878        0.90       0.95     0.93
## 5          0.722        0.73       0.72     0.68
## 6          0.526        0.57       0.60     0.58
## 7          0.864        0.87       0.87     0.82
## 8          0.622        0.65       0.32     0.36
## 9          0.556        0.56       0.56     0.57
## 10         0.642        0.64       0.61     0.64
## 11         0.466        0.49       0.46     0.52
## 12         0.282        0.30       0.20     0.28
## 13         0.810        0.82       0.75     0.73
## 14         0.116        0.14         NA       NA
## 15         0.932        0.93       0.99     0.64
## 16         0.530        0.56       0.45     0.82
## 17         0.906        0.90       0.79     0.61
## 18         0.638        0.64       0.64     0.89
## 19         0.882        0.90       0.89     0.91
## 20         0.928        0.94       0.91     0.94
## 21         0.980        0.98       0.94     0.22
## 22         0.096        0.11       0.16     0.82
## 23         0.770        0.80       0.70     0.64
## 24         0.884        0.89       0.74     0.59
## 25         0.592        0.59       0.58     0.58
## 26         0.982        0.99       0.98     0.59
## 27         0.428        0.41       0.51     0.87
## 28         0.768        0.77       0.88     0.86
reactable(accu_df)

Analysis

Comparison for each data set

FCN

fcn_accu <- data.frame(dataset = accu_df$Datasets)

fcn_accu$fcn_wo <- accu_df$`FCN-w-o`
fcn_accu$fcn_w <- accu_df$`FCN-w`
fcn_accu$fcn_n1 <- accu_df$`FCN-w-o`*accu_df$`Number-of-incidents`
fcn_accu$fcn_n2 <- accu_df$`FCN-w`*accu_df$`Number-of-incidents`
fcn_accu$p_val <- rep(1,28)
for (i in 1:28){
  n1 <- fcn_accu$fcn_n1[i]
  n2 <- fcn_accu$fcn_n2[i]
  n <- accu_df$`Number-of-incidents`[i]
  fcn_accu$p_val[i] <- round(as.numeric(prop.test(c(n1,n2),c(n,n))$p.value),3)
}
## Warning in prop.test(c(n1, n2), c(n, n)): Chi-squared approximation may be
## incorrect

MLSTM

MLSTM_accu <- data.frame(dataset = accu_df$Datasets)

MLSTM_accu$MLSTM_wo <- accu_df$`MLSTM-w-o`
MLSTM_accu$MLSTM_w <- accu_df$`MLSTM-w`
MLSTM_accu$MLSTM_n1 <- accu_df$`MLSTM-w-o`*accu_df$`Number-of-incidents`
MLSTM_accu$MLSTM_n2 <- accu_df$`MLSTM-w`*accu_df$`Number-of-incidents`
MLSTM_accu$p_val <- rep(1,28)
for (i in 1:28){
  n1 <- MLSTM_accu$MLSTM_n1[i]
  n2 <- MLSTM_accu$MLSTM_n2[i]
  n <- accu_df$`Number-of-incidents`[i]
  MLSTM_accu$p_val[i] <- round(as.numeric(prop.test(c(n1,n2),c(n,n))$p.value),3)
}

MLSTM-FCN

MLSTMFCN_accu <- data.frame(dataset = accu_df$Datasets)

MLSTMFCN_accu$MLSTMFCN_wo <- accu_df$`MLSTM-FCN-w-o`
MLSTMFCN_accu$MLSTM_w <- accu_df$`MLSTM-FCN-w`
MLSTMFCN_accu$MLSTM_n1 <- accu_df$`MLSTM-FCN-w-o`*accu_df$`Number-of-incidents`
MLSTMFCN_accu$MLSTM_n2 <- accu_df$`MLSTM-FCN-w`*accu_df$`Number-of-incidents`
MLSTMFCN_accu$p_val <- rep(1,28)
for (i in 1:28){
  n1 <- MLSTMFCN_accu$MLSTM_n1[i]
  n2 <- MLSTMFCN_accu$MLSTM_n2[i]
  n <- accu_df$`Number-of-incidents`[i]
  MLSTMFCN_accu$p_val[i] <- round(as.numeric(prop.test(c(n1,n2),c(n,n))$p.value),3)
}
## Warning in prop.test(c(n1, n2), c(n, n)): Chi-squared approximation may be
## incorrect

TAPNET

TAPNET_accu <- data.frame(dataset = accu_df$Datasets)

TAPNET_accu$TAPNET_wo <- accu_df$`TAPNET-w-o`
TAPNET_accu$TAPNET_w <- accu_df$`TAPNET-w`
TAPNET_accu$TAPNET_n1 <- accu_df$`TAPNET-w-o`*accu_df$`Number-of-incidents`
TAPNET_accu$TAPNET_n2 <- accu_df$`TAPNET-w`*accu_df$`Number-of-incidents`
TAPNET_accu$p_val <- rep(1,28)
for (i in 1:13){
  n1 <- TAPNET_accu$TAPNET_n1[i]
  n2 <- TAPNET_accu$TAPNET_n2[i]
  n <- accu_df$`Number-of-incidents`[i]
  TAPNET_accu$p_val[i] <- round(as.numeric(prop.test(c(n1,n2),c(n,n))$p.value),3)
}
## Warning in prop.test(c(n1, n2), c(n, n)): Chi-squared approximation may be
## incorrect
for (i in 15:28){
  n1 <- TAPNET_accu$TAPNET_n1[i]
  n2 <- TAPNET_accu$TAPNET_n2[i]
  n <- accu_df$`Number-of-incidents`[i]
  TAPNET_accu$p_val[i] <- round(as.numeric(prop.test(c(n1,n2),c(n,n))$p.value),3)
}

Summary

rm(accu_summary)
## Warning in rm(accu_summary): object 'accu_summary' not found
accu_summary <- cbind(dataset = accu_df$Datasets, FCN =as.numeric(fcn_accu$p_val),MLSTM = as.numeric(MLSTM_accu$p_val), MLSTMFCN=as.numeric(MLSTMFCN_accu$p_val), TAPNET = as.numeric(TAPNET_accu$p_val))
library("knitr")

kable(accu_summary,caption = "Accuracy comparison",align = "c", col.names = c("datasets", "FCN", "MLSTM","MLSTMFCN","TAPNET"))
Accuracy comparison
datasets FCN MLSTM MLSTMFCN TAPNET
ArtWordRec 0.974 0.08 0.35 0.398
BasicMotions 1 1 1 1
CharTraj 1 0.154 0.074 1
Cricket 1 1 0.709 0.616
DuckDuckGeese 0.793 0.855 0.975 0.558
EigenWorms 0.925 1 0.313 0.709
Epilepsy 0.178 0.682 0.825 0.15
EthanolConcentration 0.039 0.831 0.053 0.01
FaceDetection 1 0.588 0.415 0.275
FingerMovements 0.865 1 1 0.559
HandMovement 0.733 0.379 0.638 0.263
Handwriting 0.882 0.415 0.521 0
Heartbeat 0.896 1 0.896 0.659
InsectWingbeat 0 1 0 1
JapaneseVowels 0.717 0.329 0.975 0
LSST 0.239 0.858 0.006 0
Libras 0.956 0 0.956 0
MotorImagery 0.878 0.706 1 0
NATOPS 0.69 0.392 0.571 0.388
PEMS-SF 0.399 0 0.405 0.145
PenDigits 0.274 1 1 0
Phoneme 0.437 0.266 0.001 0
RacketSports 0.512 0.795 0.356 0.09
SelfRegulationSCP1 0.991 0.813 0.907 0
SelfRegSCP2 0.668 0.55 1 1
SelfRegSCP2 0 1 0.04 0
StandWalkJump 1 0.981 1 0.009
UWaveGestureLibrary 0.909 0.886 1 0.338
reactable(accu_summary, sortable = TRUE,
  showSortable = TRUE,)

Summary

At significance level 0.05, there are

  • FCN with CSA 3 higher than w/o
  • MLSTM with CSA 2 higher than w/o
  • MLSTMFCN with CSA 4 higher than w/o
  • TAPNET with CSA 11 higher than w/o