Newer
Older
masterarbeit / usedMcode / kFoldRidge.m
@JPH JPH on 29 Jul 2016 1018 bytes fix ridge, full run TODO
function [coeffs]=kFoldRidge(data,kin,k,ridgeParams)
    if any(size(ridgeParams)>1)
        
        correlationPerParam=zeros(size(ridgeParams));
        
        for param=ridgeParams
            
            randomMapping=transpose(randperm(size(data,1)));
            correlations=zeros(k,1);

            parfor i=1:k
                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(trainKin,trainData,param,0);
                correlations(i)=ridgeCorrelation(testData,testKin,coeffs);
            end

           correlationPerParam(ridgeParams==param)=mean(correlations);
        end
        [~,maxRidgeParamIndex]=max(correlationPerParam);
        coeffs=ridge(kin,data,ridgeParams(maxRidgeParamIndex),0);
        
        
    else
        coeffs=ridge(kin,data,ridgeParams(1),0);
    end
end