Newer
Older
masterarbeit / svm.m
@JPH JPH on 19 Jun 2016 1 KB initial commit
%params
NFFT=2048;
cutWindow=2;
window=0.2;
shift=0.05;
k=10;
rounds=1;
maxExpC=5;

%svm
[signal, states, params] = load_bcidat('/home/jph/Uni/masterarbeit/Block1_ReachingMovements/AO/AO_B1001/AO_B1S001R01.dat');
% [ splitSignals, code ] = cutTrials( states, signal );
[ splitSignals, code ] = cutWindows( states, signal, params, cutWindow );

%trainingData has format trial x ch x powerSpectrum
[trainingDataEEG,trainingDataEMG]=generateTrainingData(splitSignals,NFFT,window,shift,params);

classification=code;%double(code<=5);


accurancy=zeros(rounds,3);
means=zeros(rounds,1);
for i=1:rounds
    randMap=randperm(size(trainingDataEEG,1));
    leaveOut=trainingDataEEG(mod(randMap,k+2)==0,:,:);
    leaveClasses=classification(mod(randMap,k+2)==0);
    remaining=trainingDataEEG(mod(randMap,k+2)~=0,:,:);
    remainingClasses=classification(mod(randMap,k+2)~=0);

    model=kfoldCV(remainingClasses,remaining,k,maxExpC);

    [predictions,accurancy(i,:),pvalues]=svmpredict(leaveClasses,leaveOut(:,:),model);
    means(i)=mean(leaveClasses-predictions);
end
m=mean(accurancy(:,1))
mm=mean(means)