diff --git a/text/collection.txt b/text/collection.txt index 7c1a10e..8b8883b 100644 --- a/text/collection.txt +++ b/text/collection.txt @@ -18,3 +18,5 @@ EMG: 55.71%, EEG: 33.32% (default, minFrequ=8, maxFreq=30) EMG: 28.25%, EEG: 44.62% (default, windowEMG=1s) +new default, including kinematics: (threshold=10000, pause0 (0.5s pause, 0.5s included)) +EMG: 56.76%, EEG: 41.51%, corrEMG: 0.0984,0.1382,0.0446, corrEEG: 0.2409,0.2693,0.1729 diff --git a/usedMcode/callAll.m b/usedMcode/callAll.m index 371b7a4..627351a 100644 --- a/usedMcode/callAll.m +++ b/usedMcode/callAll.m @@ -6,11 +6,11 @@ allSubjects=true; %run all subjects and days or only one random day for one random subject -windowEMG=0.2; %try 1s +windowEMG=0.2; windowEEG=1; shift=0.2; pburgOrder=50; -minEEGFreq=0; %try 8-30 +minEEGFreq=0; maxEEGFreq=200; pause=false; ridgeParams=[0.1]; @@ -39,6 +39,7 @@ maxCEEG=zeros([j,k,1]); cmScaledEMG=zeros([j,5,5]); cmScaledEEG=zeros([j,5,5]); +maxRidgeParamIndex=zeros([j,3,k]); correlationEMG=zeros([j,3]); %x,y,angle correlationEEG=zeros([j,3]); @@ -49,8 +50,8 @@ savePath=readEEG(pathToFile,subject,number,windowEMG,windowEEG,shift,maxFile,threshold,pburgOrder,minEEGFreq,maxEEGFreq,pause); [meanAccurancysEMG(j),maxCEMG(j,:),cmScaledEMG(j,:,:)]=svmEciton(savePath,~EEG,k,maxExpC,maxPerClass); [meanAccurancysEEG(j),maxCEEG(j,:),cmScaledEEG(j,:,:)]=svmEciton(savePath,EEG,k,maxExpC,maxPerClass); - [correlationEMG(j,:)]=ridgeCV(savePath,false,k,ridgeParams); - [correlationEEG(j,:)]=ridgeCV(savePath,EEG,k,ridgeParams); + [correlationEMG(j,:),maxRidgeParamIndex(j,:,:)]=ridgeCV(savePath,false,k,ridgeParams); + [correlationEEG(j,:),maxRidgeParamIndex(j,:,:)]=ridgeCV(savePath,EEG,k,ridgeParams); fprintf('%s%i finished %s\n',subject,number,datestr(datetime('now'))) end diff --git a/usedMcode/kFoldRidge.m b/usedMcode/kFoldRidge.m index 3811a46..7f69fab 100644 --- a/usedMcode/kFoldRidge.m +++ b/usedMcode/kFoldRidge.m @@ -1,4 +1,4 @@ -function [coeffs]=kFoldRidge(data,kin,k,ridgeParams) +function [coeffs,maxRidgeParamIndex]=kFoldRidge(data,kin,k,ridgeParams) if any(size(ridgeParams)>1) correlationPerParam=zeros(size(ridgeParams)); @@ -21,10 +21,8 @@ correlationPerParam(ridgeParams==param)=mean(correlations); end [~,maxRidgeParamIndex]=max(correlationPerParam); - coeffs=ridge(kin,data,ridgeParams(maxRidgeParamIndex),0); - - else - coeffs=ridge(kin,data,ridgeParams(1),0); + maxRidgeParamIndex=1; end + coeffs=ridge(kin,data,ridgeParams(maxRidgeParamIndex),0); end \ No newline at end of file diff --git a/usedMcode/ridgeCV.m b/usedMcode/ridgeCV.m index bb686a3..2fea4fd 100644 --- a/usedMcode/ridgeCV.m +++ b/usedMcode/ridgeCV.m @@ -1,4 +1,4 @@ -function [correlation]=ridgeCV(savePath,EEG,k,ridgeParams) +function [correlation,maxRidgeParamIndex]=ridgeCV(savePath,EEG,k,ridgeParams) load(savePath); clear classification; if EEG @@ -10,6 +10,7 @@ clear trainingDataEMG; correlation=zeros(size(kinematics,2),1); + maxRidgeParamIndex=zeros(size(kinematics,2),k); for j=1:size(kinematics,2) randMap=randperm(size(trainingData,1)); @@ -23,7 +24,7 @@ remainingKin=kin(mod(randMap,k)~=i-1); %fprintf('%s create %ith model\n',datestr(datetime('now')),i) - [coeffs]=kFoldRidge(remainingData,remainingKin,k,ridgeParams); + [coeffs,maxRidgeParamIndex(j,i)]=kFoldRidge(remainingData,remainingKin,k,ridgeParams); correlations(i)=ridgeCorrelation(leaveData,leaveKin,coeffs); end