[Biosig-general] Good progress
Brought to you by:
schloegl
From: Iuri S. <iur...@gm...> - 2009-09-11 09:12:17
|
Hi schlogl, I downloaded the datasets 2a and 2b from bci competition iV So far, i extracted the files and under Matlab I tried to ran demo2.m over the gdf samples. I ran on two diferents computers and i got diferent errors on both. Basically the errors were on the exhaustives matrices operations, in the step 3 - feature extraction The computers just ran out of memory such as in the errors bellow. I reallly thought their processors would burn! :-) #COMPUTER A: AMD Atlhon XP 1.5 Ghz- 1.5GB RAM memory Step 3: feature extraction. a: TDP (log(Hjorth)). ??? Error using ==> filter Out of memory. Type HELP MEMORY for your options. Error in ==> tdp at 117 m = filter(B,A,d.^2)./filter(B,A,double(~isnan(d0))); Error in ==> demo2 at 133 f1 = tdp(s(:,eegchan),p,MODE.UC); #COMPUTER B: AMD Atlhon 2.0 ghz 64 bits 1GB RAM memory ??? Error using ==> horzcat Out of memory. Type HELP MEMORY for your options. Error in ==> tdp at 118 F = [F, log(m)]; Error in ==> demo2 at 133 f1 = tdp(s(:,eegchan),p,MODE.UC); ####################################### I debugged every execution of each file using matlab debug tools. But Suddenly, Eureka!!! I successfully got the results bellow using the file B0903T.gdf ################################################################# Step 1: Prepare data. a: Load data file B0903T.gdf. arg[0]=B0903T.gdf arg[1] IsNumeric arg[2]=OVERFLOWDETECTION:ON arg[3]=UCAL:OFF #info @0117DC98 #0: @0E9B1818 EEG:C3 #1: @0E9B1958 EEG:Cz #2: @0E9B1A98 EEG:C4 #3: @0E9B1BD8 EOG:ch01 #4: @0E9B1D18 EOG:ch02 #5: @0E9B1E58 EOG:ch03 b: Extract trigger and classlabels. Step 2: Preprocessing. a: Quality control with histogram analysis [Schloegl et al. 1999]. arg[0]=B0903T.gdf arg[1] IsNumeric arg[2]=OVERFLOWDETECTION:OFF arg[3]=UCAL:ON #info @0117DC98 #0: @0E9B1818 EEG:C3 #1: @0E9B1958 EEG:Cz #2: @0E9B1A98 EEG:C4 #3: @0E9B1BD8 EOG:ch01 #4: @0E9B1D18 EOG:ch02 #5: @0E9B1E58 EOG:ch03 EEG2HIST:>Now You can modify the thresholds with mouse clicks. EEG2HIST:>When you are finished, PRESS ANY KEY on the keyboard. EEG2HIST:> (make sure the focus is on the figure window). <FINISHED> b: Detection of muscle artifacts. c: resampling. d: reduce EOG artifacts. e: spatial filters. Step 3: feature extraction. a: TDP (log(Hjorth)). b: Adaptive Autoregressive parameters (AAR). c: bandpower. Step 4: classification. b: weights of linear classifier. ans = 1.0e+003 * (1,1) -0.0214 (2,1) 0.0006 (3,1) 0.0008 (4,1) -0.0009 (5,1) 0.0144 (6,1) -0.0029 (7,1) -0.0252 (8,1) -0.0512 . . . (9,13) NaN (10,13) NaN (11,13) NaN (12,13) NaN (13,13) NaN c: choosen time segment. ans = 5.2040 5.6000 ans = 5.6040 6.0000 ans = 8.4040 8.8000 Step 5: classifier. Fig 1: results from TDP+LDA. Classifier: classifier:statistical:lda Error: 14.4 % Accuracy: 85.6 % specific Accuracy: 85.0 86.2 Kappa: 0.71 ± 0.12 I(Wolpaw): 0.41 bit I(Nykopp): 0.41 bit I(Continous): SUM = 0.38 [ 0.38 0.38 ] STMI: 0.19 [ 0.19 0.19 ] SNR: 0.68 0.68 correlation (parametric): 0.64 0.64 rank correlation: AUC: 0.90 0.90 ans = 65 15 8 72 Fig 2: results from AAR+LDA results. Classifier: classifier:statistical:lda Error: 15.0 % Accuracy: 85.0 % specific Accuracy: 84.8 85.2 Kappa: 0.70 ± 0.12 I(Wolpaw): 0.39 bit I(Nykopp): 0.39 bit I(Continous): SUM = 0.39 [ 0.39 0.39 ] STMI: 0.20 [ 0.20 0.20 ] SNR: 0.72 0.72 correlation (parametric): 0.65 0.65 rank correlation: AUC: 0.89 0.89 ans = 67 13 11 69 Fig 3: results from BandPower+LDA results. Classifier: classifier:statistical:lda Error: 18.1 % Accuracy: 81.9 % specific Accuracy: 81.3 82.4 Kappa: 0.64 ± 0.12 I(Wolpaw): 0.32 bit I(Nykopp): 0.32 bit I(Continous): SUM = 0.31 [ 0.31 0.31 ] STMI: 0.08 [ 0.08 0.08 ] SNR: 0.54 0.54 correlation (parametric): 0.59 0.59 rank correlation: AUC: 0.87 0.87 ans = 63 17 12 68 Fig 3+: various evaluation criteria [Schlögl et al. 2007] for comparing different features Fig 4: Error rate (CC.TSD.ERR) Fig 5: correlation coefficient (CC.TSD.r) Fig 6: Mutual information (CC.TSD.I) Fig 7: Signal-to-Noise ratio (CC.TSD.SNR) Fig 8: Area-under-the-ROC-curve (CC.TSD.AUC) Fig 9: Accuracy (CC.TSD.ACC00) Fig 10: Cohens kappa coefficient (CC.TSD.KAP00) Fig 11: Information transfer [Wolpaw] (CC.TSD.I_wolpaw) Fig 12: Information transfer [Nykopp] (CC.TSD.I_Nykopp) Fig 13: Steepness of mutual information (CC.TSD.STMI) ################################################################################### I got all the graphics and I they showed the results based on the methods applied. And the bottom line is: a. where and how do i identify in the graphics the left and right hand movements? b. Furthemore, How to i classify them to return only a single bit answer such as in the pseudocode: if (left_hand_movement) return 1 if (right_hand_movement) return 0 I am excited, I am looking forward to read your answer. cheers, iuri ps. i forwarded this email to biosig mailing list just to keep records |