Диссертация (Математические модели и инструментальные средства поддержки принятия решений в сфере массовых услуг), страница 21
Описание файла
Файл "Диссертация" внутри архива находится в папке "Математические модели и инструментальные средства поддержки принятия решений в сфере массовых услуг". PDF-файл из архива "Математические модели и инструментальные средства поддержки принятия решений в сфере массовых услуг", который расположен в категории "". Всё это находится в предмете "экономика" из Аспирантура и докторантура, которые можно найти в файловом архиве СПбГУ. Не смотря на прямую связь этого архива с СПбГУ, его также можно найти и в других разделах. , а ещё этот архив представляет собой кандидатскую диссертацию, поэтому ещё представлен в разделе всех диссертаций на соискание учёной степени кандидата экономических наук.
Просмотр PDF-файла онлайн
Текст 21 страницы из PDF
Реализация алгоритма для оценкинескольких внешних событий в программной средеMATLAB%Final edition with loops and parameters% Solve an Input-Output Fitting problem with a Neural Network% Script generated by NFTOOL% Created Fri Oct 05 12:07:35 GMT+04:00 2012%% This script assumes these variables are defined:%%x - input data.%t - target data.neurons = [4]; % 6 or 8%n_inputs = 6; % or 12;%intervention_type = 'bb'; %'bc' or 'cb' or 'cc'best_model_counter=0;n_inp = [6]; %6,12interv_types = [4];for n_inputs=n_inpfor intervention_type=interv_typestrue_min_mse=10000;false_min_mse=10000;true_count=0;false_count=0;t_count=0;clear min_perf;clear est_var1;clear est_var2;clear perf_total;clear cars_inputs;clear interventions;n_cols=n_inputs+2;n_rows=neurons;for x=1:1000clear perf;switch n_inputscase 6load yota_inputs_6.txt;yota_inputs = yota_inputs_6;load yota_targets_6.txt;yota_targets=yota_targets_6;switch intervention_typecase 1load interventions_bb_6.txt;interventions=interventions_bb_6;151case 2load interventions_bc_6.txt;interventions=interventions_bc_6;case 3load interventions_cb_6.txt;interventions=interventions_cb_6;case 4load interventions_cc_6.txt;interventions=interventions_cc_6;endcase 12load yota_inputs_12.txt;yota_inputs = yota_inputs_12;load yota_targets_12.txt;yota_targets=yota_targets_12;switch intervention_typecase 1load interventions_bb.txt;interventions=interventions_bb;case 2load interventions_bc.txt;interventions=interventions_bc;case 3load interventions_cb.txt;interventions=interventions_cb;case 4load interventions_cc.txt;interventions=interventions_cc;endendscaled_inputs=mapminmax(yota_inputs);[scaled_targets,PS]=mapminmax(yota_targets);inputs = [scaled_inputs;interventions];targets = scaled_targets;% Create a Fitting NetworkhiddenLayerSize = neurons;net = fitnet(hiddenLayerSize);net=configure(net,inputs,targets);net.layers{1}.transferFcn = 'logsig';net.layers{2}.transferFcn = 'purelin';% Choose Input and Output Pre/Post-Processing Functions% For a list of all processing functions type: help nnprocess% Setup Division of Data for Training, Validation, Testing% For a list of all data division functions type: help nndividenet.divideFcn = 'dividerand'; % Divide data randomlynet.divideMode = 'sample'; % Divide up every samplenet.divideParam.trainRatio = 70/100;net.divideParam.valRatio = 10/100;net.divideParam.testRatio = 20/100;152% For help on training function 'trainlm' type: help trainlm% For a list of all training functions type: help nntrainnet.trainFcn = 'trainlm'; % Levenberg-Marquardt% Choose a Performance Function% For a list of all performance functions type: helpnnperformancenet.performFcn = 'mse'; % Mean squared error% Choose Plot Functions% For a list of all plot functions type: help nnplotnet.plotFcns = {'plotperform','plottrainstate','ploterrhist',...'plotregression', 'plotfit'};% Train the Networke = targets-net(inputs);perf(1) = mse(e);%perf_total(1) = mse(e);%nv=repmat(0,1,13);i=2;f=0;%% Begin WHILE ?while(f~=1)for nc=1:n_cols,for nr=1:n_rows,if nc==n_cols-1 && nr~=n_rows-1net.IW{1,1}(nr,nc)=0;elseif nc==n_cols && nr~=n_rowsnet.IW{1,1}(nr,nc)=0;elseif nr==n_rows-1 && nc~=n_cols-1net.IW{1,1}(nr,nc)=0;elseif nr==n_rows && nc~=n_colsnet.IW{1,1}(nr,nc)=0;endendendnet.trainParam.epochs=1;[net,tr] = train(net,inputs,targets);e = targets-net(inputs);perf(i) = mse(e);%perf_total(t_count+2)=mse(e);% Test the Networkoutputs = net(inputs);errors = gsubtract(targets,outputs);performance = perform(net,targets,outputs);153% Recalculate Training, Validation and Test PerformancetrainTargets = targets .* tr.trainMask{1};valTargets = targets .* tr.valMask{1};testTargets = targets .* tr.testMask{1};trainPerformance = perform(net,trainTargets,outputs);valPerformance = perform(net,valTargets,outputs);testPerformance = perform(net,testTargets,outputs);if abs(perf(i)-perf(i-1))<10^(-6)f=1;else f=0; endi=i+1;t_count=t_count+1;end%perfa4=net.LW{2,1}(1,n_rows-1);w4=net.iw{1,1}(n_rows-1,n_cols-1);a5=net.LW{2,1}(1,n_rows);w5=net.iw{1,1}(n_rows,n_cols);coef = (max(yota_targets)-min(yota_targets))/(1-(-1));iw=net.iw{1,1};lw=net.lw{2,1};b1=net.b{1,1};b2=net.b{2,1};b4=net.b{1,1}(n_rows-1,1);b5=net.b{1,1}(n_rows,1);min_perf(x)=perf(i-1);est_var1(x)=a4 * coef * (1 / (1 + exp(-1*(w4+b4)))-1 / (1 +exp(w4-b4)));est_var2(x)=a5 * coef * (1 / (1 + exp(-1*(w5+b5)))-1 / (1 +exp(w5-b5)));if est_var1(x)<0 && est_var2(x)< 0if min_perf(x)<=true_min_msetrue_min_mse=min_perf(x);true_est_var1=est_var1(x);true_est_var2=est_var2(x);true_outputs=mapminmax('reverse',outputs,PS);really_mse=mse(mapminmax('reverse',outputs,PS)yota_targets);true_min_mse_fin=mse(targets-outputs);best_a4=a4;best_w4=w4;best_a5=a5;best_w5=w5;best_iw=iw;best_lw=lw;best_b1=b1;154best_b2=b2;best_b4=b4;best_b5=b5;if true_min_mse~=true_min_mse_finbreak;endendtrue_count=true_count+1;elseif min_perf(x)<=false_min_msefalse_min_mse=min_perf(x);false_est_var1=est_var1(x);false_est_var2=est_var2(x);endfalse_count=false_count+1;endendbest_model_counter=best_model_counter+1;c_number(best_model_counter)=best_model_counterc_neurons(best_model_counter)=neuronsc_n_inputs(best_model_counter)=n_inputsc_intervention_type(best_model_counter)=intervention_typec_really_mse(best_model_counter)=really_msec_true_min_mse(best_model_counter)=true_min_msec_true_min_mse_fin(best_model_counter)=true_min_mse_finc_true_est_var1(best_model_counter)=true_est_var1c_true_est_var2(best_model_counter)=true_est_var2c_best_a4(best_model_counter)=best_a4c_best_w4(best_model_counter)=best_w4c_best_a5(best_model_counter)=best_a5c_best_w5(best_model_counter)=best_w5c_best_b4(best_model_counter)=best_b4c_best_b5(best_model_counter)=best_b5c_false_min(best_model_counter)=false_min_msec_false_est_var1(best_model_counter)=false_est_var1c_false_est_var2(best_model_counter)=false_est_var2c_true_count(best_model_counter)=true_countc_false_count(best_model_counter)=false_countc_t_count(best_model_counter)=t_countendendoutput_matrix=[c_number;c_neurons;c_n_inputs;c_intervention_type;c_really_mse;c_true_min_mse;c_true_min_mse_fin;c_true_est_var1;c_true_est_var2;c_best_a4;c_best_w4;c_best_a5;c_best_w5;c_best_b4;c_best_b5;c_false_min;c_false_est_var1;c_false_est_var2;c_true_count;c_false_count;c_t_count]csvwrite('output_4neuro6inp_int4.csv',output_matrix);155%% END WHILE ?% View the Network%view(net)% Plots% Uncomment these lines to enable various plots.%figure, plotperform(tr)%figure, plottrainstate(tr)%figure, plotfit(net,inputs,targets)%figure, plotregression(targets,outputs)%figure, ploterrhist(errors)156Приложение 5.
Используемые данные в сценарноммоделировании «что-если»( )( )( )Январь 2007 517,80,000,0517,8Февраль 2007 503,60,000,0503,6Март 2007 519,40,000,0519,4Апрель 2007 553,30,000,0553,3Май 2007 581,70,000,0581,7Июнь 2007 655,60,000,0655,6Июль 2007 684,50,000,0684,5Август 2007 676,10,000,0676,1Сентябрь 2007 656,60,000,0656,6Октябрь 2007 589,30,000,0589,3Ноябрь 2007 551,60,000,0551,6Декабрь 2007 526,90,000,0526,9Январь 2008 519,30,000,0519,3Февраль 2008 511,40,000,0511,4Март 2008 527,80,000,0527,8Апрель 2008 533,50,000,0533,5Май 2008 580,90,000,0580,9Июнь 2008 599,00,000,0599,0Июль 2008 657,80,000,0657,8Август 2008 660,30,000,0660,3Сентябрь 2008 615,50,10-13,8629,3Октябрь 2008 547,10,15-18,5565,7Ноябрь 2008 521,50,20-23,7545,2Декабрь 2008 485,70,25-27,7513,4Январь 2009 480,60,30-33,1513,7Февраль 2009 465,10,35-37,6502,7Дата( )157Март 2009 487,10,40-45,3532,4Апрель 2009 497,20,45-52,3549,4Май 2009 532,40,50-62,5595,0Июнь 2009 561,40,55-73,0634,4Июль 2009 587,80,60-83,8671,6Август 2009 589,40,65-91,5680,9Сентябрь 2009 539,80,70-90,8630,6Октябрь 2009 493,50,75-89,5583,0Ноябрь 2009 452,70,80-88,0540,7Декабрь 2009 426,80,85-88,7515,5Январь 2010 437,10,90-96,7533,8Февраль 2010 405,20,95-95,2500,4Март 2010 410,91,00-102,2513,1Апрель 2010 429,90,97-103,4533,3Май 2010 485,60,94-112,9598,5Июнь 2010 517,60,91-116,2633,8Июль 2010 590,70,88-127,9718,6Август 2010 605,60,85-126,3731,9Сентябрь 2010 534,40,82-107,3641,7Октябрь 2010 476,00,79-91,8567,9Ноябрь 2010 455,20,76-84,3539,5Декабрь 2010 440,60,74-78,2518,8Январь 2011 439,40,71-74,6513,9Февраль 2011 417,70,68-67,7485,4Март 2011 426,70,65-66,0492,7Апрель 2011 449,60,62-66,1515,7Май 2011 488,50,59-68,2556,6Июнь 2011 537,40,56-71,0608,5Июль 2011 565,70,53-70,6636,3158Август 2011 565,00,50-66,4631,3Сентябрь 2011 521,00,47-57,4578,4Октябрь 2011 468,10,44-48,2516,3Ноябрь 2011 446,60,41-42,8489,4Декабрь 2011 423,80,38-37,6461,4Январь 2012 443,40,35-36,2479,5Февраль 2012 415,50,32-31,0446,4Март 2012 427,90,29-28,9456,8Апрель 2012 436,50,26-26,4462,9Май 2012 502,30,24-26,9529,2Июнь 2012 527,00,21-24,7551,7Июль 2012 559,70,18-22,4582,0Август 2012 552,10,15-18,3570,4Сентябрь 2012 495,60,12-13,1508,8Октябрь 2012 473,30,09-9,4482,7Ноябрь 2012 441,40,06-5,8447,2Декабрь 2012 414,90,03-2,7417,6159.