Newer
Older
masterarbeit / usedMcode / ridgeCV.m
@Jan-Peter Hohloch Jan-Peter Hohloch on 30 Jul 2016 1 KB add pBurgOrder to path
function [correlation]=ridgeCV(pathToFile,subject,number,EEG,k,ridgeParams,windowEMG,windowEEG,shift,minEEGFreq,maxEEGFreq,pause,pBurgOrder)
    load(strcat(pathToFile,sprintf('../matlabData/%s%i%imsWindowEMG%isWindowEEG%imsShiftFreq%ito%iPause%i.mat',subject,number,windowEMG*1000,windowEEG,shift*1000,minEEGFreq,maxEEGFreq,pause,pBurgOrder)));
    clear classification;
    if EEG
        trainingData=trainingDataEEG;
    else
        trainingData=trainingDataEMG;
    end
    clear trainingDataEEG;
    clear trainingDataEMG;
    
    correlation=zeros(size(kinematics,2),1);
    
    for j=1:size(kinematics,2)
        randMap=randperm(size(trainingData,1));
        kin=kinematics(:,j);
        correlations=zeros([k,1]);

        parfor i=1:k
            leaveData=trainingData(mod(randMap,k)==i-1,:);
            leaveKin=kin(mod(randMap,k)==i-1);
            remainingData=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(remainingData,remainingKin,k,ridgeParams);

            correlations(i)=ridgeCorrelation(leaveData,leaveKin,coeffs);
        end

        correlation(j)=mean(correlations);
    end
end