load choles_all % Carica li dataset Choless_all [pn,meanp,stdp,tn,meant,stdt] = prestd(p,t); % Standardizza (normalizza) i dati in modo % che abbiano media 0 e deviazione standard 1 % pn = input normalizzati % tn = output (target) normalizzati [R,Q] = size(pn) iitst = 2:4:Q; % Crea l'indice per la creazione del dataset di Test iival = 4:4:Q; % Crea l'indice per la creazione del dataset di Valutazione iitr = [1:4:Q 3:4:Q]; % Crea l'indice per la creazione del dataset % di Training (di dimensione doppia ripetto agli altri 2) val.P = pn(:,iival); val.T = tn(:,iival); % Crea la struttura contenente la porzione di dataset % riservata alla Valutazione della rete test.P = pn(:,iitst); test.T = tn(:,iitst); % Crea la struttura contenente la porzione di dataset % riservata al Test della rete ptr = pn(:,iitr); ttr = tn(:,iitr); % Porzione di dataset riservata al training della rete % Porzione di dataset riservata ai dati utilizzati come % benchmark durante il training della rete % Costruisco la rete neurale, in input fornisco i dati normalizzati. % La rete avrˆ uno % strato intermedio formato da 5 neuroni e funzione di transizione Tansig % ed un layer di uscita caratterizzato da 3 neuroni e funzione di % transizione Purelin. Per l'addestramento della rete utilizzo la funzione % Trainlm (Levenberg-Marquardt backpropagation) net = newff(minmax(pn),[5 3],{'tansig' 'purelin'},'trainlm'); [net,tr]=train(net,ptr,ttr,[],[],val,test); % Training della rete, fornisco i dati di training (ptr), % i dati di benchmark, il % validation set ed il test set. an = sim(net,pn); % Verifichiamo il comportamento della rete neurale % fornendo come input i dati standardizzati a = poststd(an,meant,stdt); % Ri-trasformo i dati nella forma originale for i=1:3 figure(i) [m(i),b(i),r(i)] = postreg(a(i,:),t(i,:)); end % Grafici