Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- clear all;
- %wczytanie danych
- data = load("data_processed");
- data = [data(:,[7 11:17 24:28]),mapminmax(data(:,[1:6 8:10 18:23 29:30]))];
- datatrain = data;
- datatest = data(randperm(size(data,1)),:);
- datatest = datatest(1:50,:);
- %przygotowanie danych do nauki
- input = datatrain(:,2:end)';
- target = datatrain(:,1)'+1;
- targetvector = full(ind2vec(target));
- %przygotowanie danych testowych
- testinput = datatest(:,2:end)';
- testtarget = datatest(:,1)'+1;
- %przygotowanie atrybutów do eksperymentów
- lrs = [0.01:0.01:0.09,0.1:0.1:0.9,0.99,1];
- neurons = 10:10:100;
- epochs = 10:10:100;
- %pętla wykonująca eksperymenty
- count = 1;
- for i = 1:length(lrs)
- for j = 1:length(neurons)
- exPK = [];
- for k = 1:length(epochs)
- lr = lrs(i);
- ec = epochs(k);
- nc = neurons(j);
- net = lvqnet(nc,lr);
- net.trainParam.epochs=ec;
- [net,tr] = train(net,input,targetvector);
- test = net(input);
- testind=vec2ind(test);
- PK = (1-sum(abs(target-testind)>=0.5)/length(input))*100
- % Eksperyment 1
- PERF = tr.perf;
- EPOCH = tr.epoch;
- plotName = sprintf('plot_MSE%d_lr_%f-nc_%d_ec_%d.png',count,lr,nc,ec);
- plot(EPOCH,PERF);
- title('Wykres wartości błędu MSE w zależności od liczby epok');
- xlabel('Liczba epok')
- ylabel('Wartość błędu MSE')
- saveas(gcf, plotName);
- PK_en(k,j) = PK;
- exPK(k) = PK;
- VarName = sprintf('exp2_%d_lr_%f_nc_%d_ec_%d',count,lr,nc,ec);
- save(VarName, 'lr','nc','ec');
- count = count+1;
- end
- PK_lrn(i,j) = mean(exPK);
- VarName = sprintf('exp1_%d_lr_%f_nc_%d',count,lr,nc);
- save(VarName, 'lr','nc');
- end
- % Eksperyment 2
- FigName = sprintf('surf_PK_lr_%d.png',lr);
- surf(neurons,epochs,PK_en);
- title('Wykres MSE w zależności od liczby epok i liczby neuronów');
- xlabel('Liczba epok');
- ylabel('Liczba neuronów');
- zlabel('Wartość PK');
- saveas(gcf, FigName, 'png');
- end
- % Eksperyment 3
- FigName = sprintf('surf_PK_lr_%f_nc_%d.png',lr,nc);
- surf(lrs,neurons,PK_lrn);
- title('Wykres MSE w zależności od liczby epok i liczby neuronów');
- xlabel('Learning rate');
- ylabel('Liczba neuronów');
- zlabel('Wartość PK');
- saveas(gcf, FigName, 'png')
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement