diff --git a/usedMcode/callAll.m b/usedMcode/callAll.m index dcd1ff9..829b295 100644 --- a/usedMcode/callAll.m +++ b/usedMcode/callAll.m @@ -40,12 +40,18 @@ if allSubjects - meanAccurancysEMG=zeros([j,1]); - meanAccurancysEEG=zeros([j,1]); - meanAccurancysLF=zeros([j,1]); + meanAccuracysEMG=zeros([j,1]); + meanAccuracysEEG=zeros([j,1]); + meanAccuracysLF=zeros([j,1]); maxCEMG=zeros([j,k,1]); maxCEEG=zeros([j,k,1]); maxCLF=zeros([j,k,1]); + meanAccuracysEMGmovements=zeros([j,1]); + meanAccuracysEEGmovements=zeros([j,1]); + meanAccuracysLFmovements=zeros([j,1]); + maxCEMGmovements=zeros([j,k,1]); + maxCEEGmovements=zeros([j,k,1]); + maxCLFmovements=zeros([j,k,1]); % cmScaledEMG=zeros([j,5,5]); % cmScaledEEG=zeros([j,5,5]); % cmScaledLF=zeros([j,5,5]); @@ -73,28 +79,28 @@ % correlationEMGnnmf=zeros([j,noSynergies]); % correlationEEGnnmf=zeros([j,noSynergies]); % correlationLFnnmf=zeros([j,noSynergies]); - maxRidgeParamIndexEEGemg=zeros([j,size(EMGChannels,2),k]); - correlationEEGemg=zeros([j,size(EMGChannels,2)]); - maxRidgeParamIndexAutoencKin=zeros([j,noSynergies,k]); - correlationAutoencKin=zeros([j,3]); - correlationViaAutoenc=zeros([j,3]); - correlationViaPCA=zeros([j,3]); - correlationViaNNMF=zeros([j,3]); - viaCorrelationAutoenc=zeros(j,noSynergies); - viaCorrelationPCA=zeros(j,noSynergies); - viaCorrelationNNMF=zeros(j,noSynergies); - correlationEMGViaAutoenc=zeros([j,size(EMGChannels,2)]); +% maxRidgeParamIndexEEGemg=zeros([j,size(EMGChannels,2),k]); +% correlationEEGemg=zeros([j,size(EMGChannels,2)]); +% maxRidgeParamIndexAutoencKin=zeros([j,noSynergies,k]); +% correlationAutoencKin=zeros([j,3]); +% correlationViaAutoenc=zeros([j,3]); +% correlationViaPCA=zeros([j,3]); +% correlationViaNNMF=zeros([j,3]); +% viaCorrelationAutoenc=zeros(j,noSynergies); +% viaCorrelationPCA=zeros(j,noSynergies); +% viaCorrelationNNMF=zeros(j,noSynergies); +% correlationEMGViaAutoenc=zeros([j,size(EMGChannels,2)]); parfor j=1:size(numbersMat,2) number=numbersMat(j); subject=subjectsForNumbers{j}; savePath=readAll(pathToFile,subject,number,windowEMG,windowEEG,shiftEMG,shiftEEG,maxFile,threshold,pburgOrder,minEEGFreq,maxEEGFreq,pause,noLFsamples,EMGChannels,noSynergies); - [meanAccurancysEMG(j),maxCEMG(j,:),~]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset,true); - [meanAccurancysEEG(j),maxCEEG(j,:),~]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset,true); - [meanAccurancysLF(j),maxCLF(j,:),~]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset,true); -% [meanAccurancysEMG(j),maxCEMG(j,:),cmScaledEMG(j,:,:)]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset,false); -% [meanAccurancysEEG(j),maxCEEG(j,:),cmScaledEEG(j,:,:)]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset,false); -% [meanAccurancysLF(j),maxCLF(j,:),cmScaledLF(j,:,:)]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset,false); + [meanAccuracysEMG(j),maxCEMG(j,:),~]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset,true); + [meanAccuracysEEG(j),maxCEEG(j,:),~]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset,true); + [meanAccuracysLF(j),maxCLF(j,:),~]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset,true); +% [meanAccuracysEMGmovements(j),maxCEMGmovements(j,:),cmScaledEMG(j,:,:)]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset,false); +% [meanAccuracysEEGmovements(j),maxCEEGmovements(j,:),cmScaledEEG(j,:,:)]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset,false); +% [meanAccuracysLFmovements(j),maxCLFmovements(j,:),cmScaledLF(j,:,:)]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset,false); % [correlationEMGkin(j,:),maxRidgeParamIndexEMGkin(j,:,:)]=ridgeCV(savePath,'EMG','kin',k,ridgeParams,eegOffset); % [correlationEEGkin(j,:),maxRidgeParamIndexEEGkin(j,:,:)]=ridgeCV(savePath,'EEG','kin',k,ridgeParams,eegOffset); % [correlationLFkin(j,:),maxRidgeParamIndexLFkin(j,:,:)]=ridgeCV(savePath,'LF','kin',k,ridgeParams,eegOffset); @@ -124,9 +130,9 @@ number=numbersMat(j); subject=subjectsForNumbers{j}; savePath=readAll(pathToFile,subject,number,windowEMG,windowEEG,shiftEMG,shiftEEG,maxFile,threshold,pburgOrder,minEEGFreq,maxEEGFreq,pause,noLFsamples,EMGChannels,noSynergies); -% [meanAccurancysEMG,maxCEMG,cmScaledEMG(:,:)]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset); -% [meanAccurancysEEG,maxCEEG,cmScaledEEG(:,:)]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset); -% [meanAccurancysLF,maxCLF,cmScaledLF(:,:)]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset); +% [meanAccuracysEMG,maxCEMG,cmScaledEMG(:,:)]=svmEciton(savePath,'EMG',k,maxExpC,maxPerClass,eegOffset); +% [meanAccuracysEEG,maxCEEG,cmScaledEEG(:,:)]=svmEciton(savePath,'EEG',k,maxExpC,maxPerClass,eegOffset); +% [meanAccuracysLF,maxCLF,cmScaledLF(:,:)]=svmEciton(savePath,'LF',k,maxExpC,maxPerClass,eegOffset); % [correlationEMGkin,maxRidgeParamIndexEMGkin(:,:)]=ridgeCV(savePath,'EMG','kin',k,ridgeParams,eegOffset); % [correlationEEGkin,maxRidgeParamIndexEEGkin(:,:)]=ridgeCV(savePath,'EEG','kin',k,ridgeParams,eegOffset); % [correlationLFkin,maxRidgeParamIndexLFkin(:,:)]=ridgeCV(savePath,'LF','kin',k,ridgeParams,eegOffset); diff --git a/usedMcode/kfoldCV.m b/usedMcode/kfoldCV.m index c1ea267..3b422f5 100644 --- a/usedMcode/kfoldCV.m +++ b/usedMcode/kfoldCV.m @@ -1,12 +1,12 @@ function [model,maxC] = kfoldCV(classification,trainingData,k,cExpMax,maxDataPerClass) noClasses=size(unique(classification),1); if cExpMax>0 %CV only if necessary - cvAccurancy=zeros(2*cExpMax+1,1); + cvAccuracy=zeros(2*cExpMax+1,1); for cExp=1:2*cExpMax+1 c=2^(cExp-cExpMax-1); randomMapping=transpose(randperm(size(trainingData,1))); - accurancy=zeros(k,3); + accuracy=zeros(k,3); parfor i=1:k trainData=trainingData(mod(randomMapping,k)+1~=i,:,:); @@ -17,12 +17,12 @@ [trainClasses,trainData]=balanceClasses(trainClasses,trainData,... maxDataPerClass,noClasses); model=svmtrain(trainClasses,trainData(:,:),sprintf('-t 0 -c %f -q',c)); - [~, accurancy(i,:), ~]=svmpredict(testClasses, testData(:,:), model,'-q'); + [~, accuracy(i,:), ~]=svmpredict(testClasses, testData(:,:), model,'-q'); end - cvAccurancy(cExp)=mean(accurancy(:,1)); + cvAccuracy(cExp)=mean(accuracy(:,1)); end - [~,maxC]=max(cvAccurancy); + [~,maxC]=max(cvAccuracy); else maxC=1; %no gridsearch since only one C possible end diff --git a/usedMcode/svmEciton.m b/usedMcode/svmEciton.m index 7795a18..aceca35 100644 --- a/usedMcode/svmEciton.m +++ b/usedMcode/svmEciton.m @@ -23,7 +23,7 @@ clear synergies*; if moveRest - classification=classification~=0; + classification=double(classification~=0); end accuracy=zeros(k,3);