Proses Pelatihan Backpropagation Saran

Lampiran 16. Listing Program untuk Sistem Prediksi Kualitas Gula Kristal Putih

1. Proses Pelatihan Backpropagation

function p = trainp, CDATA, handles p = update_datap, handles, 1; h = waitbar13,Inisiasi BP...,name,Silakan tunggu; kolom inputoutput ci = str2numgethandles.m_edKolomInput, string; co = str2numgethandles.m_edKolomOutput, string; ci = CDATA.m_input; co = CDATA.m_output; cio = [ci co]; Data data = CDATA.m_data; input = data:,ci; output = data:,co; normalisasi: mean = 0, std =1 [pn, pmean, pstd, tn, tmean, tstd] = prestdinput, output; [pn, pmean, pstd] = prestdinput; reduksi kolom x yang penting saja [ptrans,transMat] = prepcapn, 0.02; TODO ptrn = ptrans; ttrn = tn; --Jml MF hidden = p.m_hidden; arsitektur = [lengthci hidden lengthco]; arsitektur = [sizeptrn,1 hidden sizettrn,1]; arch = arsitektur2:end; -- fcn aktivasi fAktivasis = gethandles.m_poBPAktivasi,string; fAktivasi = fAktivasisp.m_fAktivasi; fAktivasi = repmatfAktivasi, 1, lengtharsitektur-1; -- fcn training fTrainings = gethandles.m_poBPTraining,string; fTraining = fTrainingsp.m_fTraining; fTraining = fTraining{:}; --generate net MINMAX = minmaxptrn; in_net = newff MINMAX, arsitektur2:end, fAktivasi, fTraining ; in_net = newff MINMAX, arsitektur2:end, fAktivasi, fTraining ; waitbar23, h, Training Backpropagation... epoch = p.m_epoch; goal = p.m_goal; momentum = p.m_momentum; show = p.m_show; in_net.performFcn = mse; in_net.trainParam.epochs = epoch; in_net.trainParam.goal = goal; in_net.trainParam.mem_reduc = 1; 1=tidak, 2= ya in_net.trainParam.mu = momentum; in_net.trainParam.show = show; in_net.trainParam.time = Inf; [net,tr]=trainnet,ptr,ttr,[],[],val,test; [out_net, TR, Y, E]=trainin_net, ptrn, ttrn,[],[],[],[]; close_train_fig [out_fismat, error, ss] = anfisdata, in_fismat, [epoch goal nan nan nan], [1 1 1 1] ; waitbar33, h, Saving data ---gui p.m_arsitektur = arsitektur; ---internal p.m_innet = in_net; p.m_outnet = out_net; p.m_record = TR; p.m_output = Y; p.m_error = E; p.m_p = input; p.m_t = output; p.m_pn = pn; p.m_pmean = pmean; p.m_pstd = pstd; p.m_tn = tn; p.m_tmean = tmean; p.m_tstd = tstd; p.m_ptrans = ptrans; p.m_transMat = transMat; sethandles.m_lbBPGrafik,enable,on closeh 2. Proses Pelatihan Learning Vector Quantization function p = trainp, cdata, handles ---update data p = update_data p, handles, 1; --- h = waitbar13,Create LVQ-Network...,name,Silakan tunggu; kolom inputoutput ci = cdata.m_input; co = cdata.m_output; cio = [ci co]; --- data data = handles.GULA.DATA.datanormal; data = cdata.m_data; input = data:,ci; output = data:,co; normalisasi mean = 0, std =1 [pn, pmean, pstd] = prestdinput; [pn, pmean, pstd] = prestdinput; reduksi kolom x yang penting saja [ptrans,transMat] = prepcapn,0.02; TODO --- axes axeshandles.m_axMain --arsitektur nNeuron = str2numgethandles.m_edLvqNeuron,string; fTrainings = gethandles.m_poLvqTraining,string; trnType = gethandles.m_poLvqTrainFcn,value; fTraining = fTrainingsp.m_fTraining; fTraining = fTraining{:}; errGoal = str2numgethandles.m_edLvqErrorGoal, string; maxEpoch= str2numgethandles.m_edLvqMaxEpoch, string; lrnRate = str2numgethandles.m_edLvqLrnRate, string; show = str2numgethandles.m_edLvqShow, string; --generate lvq ptrn = ptrans; ttrn = output; N1 = p.m_hidden1; U2 = uniquettrn; N2 = lengthU2; for i=1:N2 PCi = sumttrn==U2ilengthttrn; end in_net = newlvqminmaxptrn, N1, PC, p.m_lrnrate, fTraining; train waitbar23, h, Training Data... in_net.trainParam.goal = p.m_goal; in_net.trainParam.epochs = p.m_epoch; in_net.trainParam.show = p.m_show; T = ind2vecttrn; [out_net, TR, Y, E] = trainin_net, ptrn,T; close_train_fig waitbar33, h, Writing data... p.m_input = ptrn; p.m_target = ttrn; p.m_innet = in_net; p.m_outnet = out_net; p.m_record = TR; p.m_output = Y; p.m_error = E; p.m_p = input; p.m_t = output; p.m_pn = pn; p.m_pmean = pmean; p.m_pstd = pstd; p.m_ptrans = ptrans; p.m_transMat = transMat; sethandles.m_lbLvqGrafik,enable,on closeh

3. Proses Prediksi