Hello
I have a highly overlapping EEG database that is to be divided into three different classes as per types of diseases. I have normalized the whole dataset and extracted 13 significant features out of it. Now I am training my network; as it was a huge dataset with (300×13) dimension so I reduced it using PCA. Please correct me If I am using the right procedure as it is appearing little complicated as a beginner. I have applied PCA individually to three classes of input data and from 100×13 for each set it delivered me 13×13 for each.
Finally I constructed my input matrix as 13×39 matrix {like: inputs = [XX; YY; ZZ]';}. I have designed target set with 3 output neurons (it is 3×39). Now I am training my network as
if true % code
net = feedforwardnet(10,'traingdm');%net.trainParam.lr = 0.0005;
%net.trainParam.mc = 0.09;
net.trainParam.goal=1e-6net.performFcn='msereg';%net.performParam.ratio=0.5;
net.trainParam.epochs=1000;%net.trainParam.mem_reduc=2;
net.divideFcn = 'divideind';net.divideParam.trainInd=1:27; % The first 27 inputs are for training.
net.divideParam.valInd=1:27; % The first 27 inputs are for validation.
net.divideParam.testInd=28:39; % The last 12 inputs are for testing the network.
net.plotFcns = {'plotperform','plottrainstate','ploterrhist', … 'plotregression', 'plotfit'}; [net,tr] = train(net,inputs,targets); end
But it shows poor performance. Please help me to know whether I am using right technique or not (Is this right technique to implement PCA in Matlab)? And what kind of training I should use to improve classification results.
Thanks in Advance
Best Answer