diff --git a/usedMcode/calcRidgeCorrelation.m b/usedMcode/calcRidgeCorrelation.m new file mode 100644 index 0000000..7937a3c --- /dev/null +++ b/usedMcode/calcRidgeCorrelation.m @@ -0,0 +1,6 @@ +function [correlation]=calcRidgeCorrelation(kin,data,coeffs) + prediction=coeffs(1)+coeffs(2:end)*data; %TODO check + + correlation=corr(kin,prediction); + +end \ No newline at end of file diff --git a/usedMcode/callAll.m b/usedMcode/callAll.m index 8451bd0..8c14943 100644 --- a/usedMcode/callAll.m +++ b/usedMcode/callAll.m @@ -41,6 +41,8 @@ readEEG(pathToFile,subject,number,windowEMG,windowEEG,shift,maxFile,threshold,pburgOrder,minEEGFreq,maxEEGFreq); [meanAccurancysEMG(j),maxCEMG(j,:),cmScaledEMG(j,:,:)]=svmEciton(pathToFile,subject,number,false,k,maxExpC,maxPerClass); [meanAccurancysEEG(j),maxCEEG(j,:),cmScaledEEG(j,:,:)]=svmEciton(pathToFile,subject,number,EEG,k,maxExpC,maxPerClass); + [correlationEMG(j)]=ridgeCorrelation(pathToFile,subject,number,false,k); + [correlationEEG(j)]=ridgeCorrelation(pathToFile,subject,number,EEG,k); j=j+1; end end diff --git a/usedMcode/ridgeCorrelation.m b/usedMcode/ridgeCorrelation.m new file mode 100644 index 0000000..4d92957 --- /dev/null +++ b/usedMcode/ridgeCorrelation.m @@ -0,0 +1,29 @@ +function [correlation]=ridgeCorrelation(pathToFile,subject,number,EEG,k,ridgeParams) + load(strcat(pathToFile,sprintf('../matlabData/%s%i200msWindowEMG1sWindowEEG200msShift1sPauseFreq0to200.mat',subject,number))); + clear classification; + if EEG + trainingData=trainingDataEEG; + else + trainingData=trainingDataEMG; + end + clear trainingDataEEG; + clear trainingDataEMG; + + randMap=randperm(size(trainingData,1)); + kin=kinematics; + correlations=zeros([k,1]); + + parfor i=1:k + leaveOut=trainingData(mod(randMap,k)==i-1,:,:); + leaveKin=kin(mod(randMap,k)==i-1,:); + remaining=trainingData(mod(randMap,k)~=i-1,:,:); + remainingKin=kin(mod(randMap,k)~=i-1,:); + %fprintf('%s create %ith model\n',datestr(datetime('now')),i) + + [coeffs]=kFoldRidge(remainingKin,remaining,k,ridgeParams); + + correlations(i)=ridgeCorrelation(leaveKin,leaveOut,coeffs); + end + + correlation=mean(correlations); +end \ No newline at end of file