Newer
Older
masterarbeit / usedMcode / ridgeCV.m
@JPH JPH on 29 Jul 2016 1 KB fix params
function [correlation]=ridgeCV(pathToFile,subject,number,EEG,k,ridgeParams,windowEMG,windowEEG,shift,minEEGFreq,maxEEGFreq,pause)
    load(strcat(pathToFile,sprintf('../matlabData/%s%i%imsWindowEMG%isWindowEEG%imsShift1sPauseFreq%ito%iPause%i.mat',subject,number,windowEMG*1000,windowEEG,shift*1000,minEEGFreq,maxEEGFreq,pause)));
    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