diff --git a/usedMcode/kFoldRidge.m b/usedMcode/kFoldRidge.m index f0b00de..3811a46 100644 --- a/usedMcode/kFoldRidge.m +++ b/usedMcode/kFoldRidge.m @@ -1,4 +1,4 @@ -function [coeffs]=kFoldRidge(kin,data,k,ridgeParams) +function [coeffs]=kFoldRidge(data,kin,k,ridgeParams) if any(size(ridgeParams)>1) correlationPerParam=zeros(size(ridgeParams)); @@ -9,22 +9,22 @@ correlations=zeros(k,1); parfor i=1:k - trainData=data(mod(randomMapping,k)+1~=i,:,:); - testData=data(mod(randomMapping,k)+1==i,:,:); + trainData=data(mod(randomMapping,k)+1~=i,:); + testData=data(mod(randomMapping,k)+1==i,:); trainKin=kin(mod(randomMapping,k)+1~=i); testKin=kin(mod(randomMapping,k)+1==i); - coeffs=ridge(trainData,trainKin,param,0); - correlations(i)=ridgeCorrelation(testKin,testData,coeffs); + coeffs=ridge(trainKin,trainData,param,0); + correlations(i)=ridgeCorrelation(testData,testKin,coeffs); end correlationPerParam(ridgeParams==param)=mean(correlations); end [~,maxRidgeParamIndex]=max(correlationPerParam); - coeffs=ridge(data,kin,ridgeParams(maxRidgeParamIndex),0); + coeffs=ridge(kin,data,ridgeParams(maxRidgeParamIndex),0); else - coeffs=ridge(data,kin,ridgeParams(1),0); + coeffs=ridge(kin,data,ridgeParams(1),0); end end \ No newline at end of file diff --git a/usedMcode/ridgeCV.m b/usedMcode/ridgeCV.m index ff0ea91..ee1fc2a 100644 --- a/usedMcode/ridgeCV.m +++ b/usedMcode/ridgeCV.m @@ -9,21 +9,25 @@ clear trainingDataEEG; clear trainingDataEMG; - randMap=randperm(size(trainingData,1)); - kin=kinematics; - correlations=zeros([k,1]); + correlation=zeros(size(kinematics,2),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); + 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 - - correlation=mean(correlations); end \ No newline at end of file diff --git a/usedMcode/ridgeCorrelation.m b/usedMcode/ridgeCorrelation.m index 5834a7e..8929a02 100644 --- a/usedMcode/ridgeCorrelation.m +++ b/usedMcode/ridgeCorrelation.m @@ -1,4 +1,4 @@ -function [correlation]=ridgeCorrelation(kin,data,coeffs) +function [correlation]=ridgeCorrelation(data,kin,coeffs) prediction=coeffs(1)+data*coeffs(2:end); correlation=corr(kin,prediction);