Newer
Older
masterarbeit / svm.m
@Jan-Peter Hohloch Jan-Peter Hohloch on 10 Jul 2016 1 KB fix smoothing, minor
close all
clear all
clc

%params
NFFT=2048;
cutWindowEEG=2;
window=0.2;
shift=0.05;

load('/home/jph/Uni/masterarbeit/data/AO1200msWindow.mat');

%k=2; 
%maxExpC=0; % c\in {2^i|i=-maxExpC:1:maxExpC}

%choose to estimate based on EEG or EMG
trainingData=trainingDataEMG;
clear trainingDataEEG;
clear trainingDataEMG;

accurancy=zeros(k,3);
maxC=zeros(k,1);
noClasses=size(unique(classification),1);
cm=zeros(noClasses);
randMap=randperm(size(trainingData,1));
disp('startCV')
for i=1:k
    leaveOut=trainingData(mod(randMap,k)==i-1,:,:);
    leaveClasses=classification(mod(randMap,k)==i-1);
    remaining=trainingData(mod(randMap,k)~=i-1,:,:);
    remainingClasses=classification(mod(randMap,k)~=i-1);
    disp(datestr(datetime('now')))
    fprintf('create %ith model\n',i)
    [model,maxC(i)]=kfoldCV(remainingClasses,remaining,k,maxExpC);
    disp(datestr(datetime('now')))
    
    [predictions,accurancy(i,:),pvalues]=svmpredict(leaveClasses,leaveOut(:,:),model);
    cm=cm+confusionmat(leaveClasses,predictions); %confusion matrix
    %cf: for each cue what was the prediction (maybe colourCoded)
end
meanAccurancy=mean(accurancy(:,1))