当前位置: 首页 > news >正文

网站建设的工具盐城网站优化工作室

网站建设的工具,盐城网站优化工作室,网站qq临时会话代码,app制作教程简单易学今天采用前作者自行改进的一个算法---融合正余弦和折射反向学习的北方苍鹰(SCNGO)优化算法优化BP神经网络。 文章一次性讲解两种案例#xff0c;回归与分类。回归案例中#xff0c;作者选用了一个经典的股票数据。分类案例中#xff0c;选用的是公用的UCI数据集。 BP神经网络… 今天采用前作者自行改进的一个算法---融合正余弦和折射反向学习的北方苍鹰(SCNGO)优化算法优化BP神经网络。 文章一次性讲解两种案例回归与分类。回归案例中作者选用了一个经典的股票数据。分类案例中选用的是公用的UCI数据集。 BP神经网络初始的权值阈值都是随机生成的因此不一定是最佳的。采用智能算法优化BP神经网络的权值阈值使得输入与输出有更加完美的映射关系以此来提升BP神经网络模型的精度。本文采用SCNGO算法对BP神经网络的权值阈值进行优化并应用于实际的回归和分类案例中。 01 股票预测案例 案例虽然介绍的是股票预测但是SCNGO-BP预测模型是通用的大家根据自己的数据直接替换即可。 股票数据特征有开盘价盘中最高价盘中最低价收盘价等。预测值为股票价格。股票数据整理代码已写好想换成自己数据的童鞋不需要理解此代码替换数据即可。下面直接上标准BP的预测结果和SCNGO-BP的预测结果。 标准BP模型预测结果 可以看到标准BP神经网络的预测效果不是很理想无法跟踪真实值偏差较大。 SCNGO-BP预测结果 可以看到SCNGO-BP神经网络的预测值可以紧密跟随真实值效果很好。 将真实值BP预测值和SCNGO-BP预测值放在一起效果更加明显。 接下来是一个SCNGO优化前后的BP神经网络误差对比图。 SCNGO-BP的迭代曲线以预测值和真实值的MSE为目标函数。 SCNGO-BP预测模型的评价可以看到SCNGO-BP方法在股票预测案例中可以很好地进行股票价格预测。 02 分类案例 接下来是SCNGO-BP的分类案例采用的数据是UCI数据集中的Balancescale.mat数据该数据一共分为三类。接下来看结果。 标准BP模型分类结果 混淆矩阵结果图 简单说一下这个图该怎么理解。请大家横着看每行的数据加起来是100%每行的数据个数加起来就是测试集中第一类数据的真实个数。以第一行为例测试集中一共有12个数据是属于第一类的而12个数据中有8个预测正确有1个预测成了第2类3个预测成了第三类。其他行均这样理解。 下面这个图是另一种结果展现方式在一些论文中会用这种方式展示结果。 SCNGO-BP分类结果 03 代码展示 %% 初始化 clear close all clc warning off addpath(genpath(pwd)); % rng(0) load Balancescale.mat data Balancescale; datadata(randperm(size(data,1)),:); %此行代码用于打乱原始样本使训练集测试集随机被抽取有助于更新预测结果。 inputdata(:,2:end); output1 data(:,1); for i1:size(data,1)switch output1(i)case 1output(i,1)1;case 2output(i,2)1;case 3output(i,3)1;case 4output(i,4)1;case 5output(i,5)1;case 6output(i,6)1;case 7output(i,7)1;end end %% 划分训练集和测试集 mfix(size(data,1)*0.7); %训练的样本数目 %训练集 input_traininput(1:m,:); output_trainoutput(1:m,:); % 测试集 input_testinput(m1:end,:); output_testoutput(m1:end,:);%% 数据归一化 [inputn,inputps]mapminmax(input_train,0,1); inputn_testmapminmax(apply,input_test,inputps); dam fix(size(inputn,2)*0.3);%选30%的训练集作为验证集 idx randperm(size(inputn,2),dam); XValidation inputn(:,idx); inputn(:,idx) []; YValidation output_train(:,idx); output_train(:,idx) [];%% 获取输入层节点、输出层节点个数 inputnumsize(input_train,1); outputnumsize(output_train,1); disp(/) disp(神经网络结构...) disp([输入层的节点数为,num2str(inputnum)]) disp([输出层的节点数为,num2str(outputnum)]) disp( ) disp(隐含层节点的确定过程...)%确定隐含层节点个数 %采用经验公式hiddennumsqrt(mn)am为输入层节点个数n为输出层节点个数a一般取为1-10之间的整数 acc 0; for hiddennumfix(sqrt(inputnumoutputnum))1:fix(sqrt(inputnumoutputnum))10net0newff(inputn,output_train,hiddennum);% 网络参数net0.trainParam.epochs1000; % 训练次数这里设置为1000次net0.trainParam.lr0.01; % 学习速率这里设置为0.01net0.trainParam.goal0.0001; % 训练目标最小误差这里设置为0.0001net0.trainParam.show25; % 显示频率这里设置为每训练25次显示一次net0.trainParam.mc0.001; % 动量因子net0.trainParam.min_grad1e-8; % 最小性能梯度net0.trainParam.max_fail6; % 最高失败次数net0.trainParam.showWindow false;net0.trainParam.showCommandLine false; % 网络训练[net0,tr]train(net0,inputn,output_train);an0sim(net0,XValidation); %验证集的仿真结果predict_labelzeros(1,size(an0,2));for i1:size(an0,2)predict_label(i)find(an0(:,i)max(an0(:,i)));endoutputtzeros(1,size(YValidation,2));for i1:size(YValidation,2)outputt(i)find(YValidation(:,i)max(YValidation(:,i)));endaccuracysum(outputtpredict_label)/length(outputt); %计算预测的确率disp([隐含层节点数为,num2str(hiddennum),时验证集的准确率为,num2str(accuracy)])%更新最佳的隐含层节点if accaccuracyaccaccuracy;hiddennum_besthiddennum;end end disp([最佳的隐含层节点数为,num2str(hiddennum_best),验证集相应的训练集的准确率为,num2str(acc)])%% 构建最佳隐含层节点的BP神经网络 disp( ) disp(标准的BP神经网络) net0newff(inputn,output_train,hiddennum_best,{tansig,purelin},trainlm);% 建立模型 %网络参数配置 net0.trainParam.epochs1000; % 训练次数这里设置为1000次 net0.trainParam.lr0.01; % 学习速率这里设置为0.01 net0.trainParam.goal0.00001; % 训练目标最小误差这里设置为0.0001 net0.trainParam.show25; % 显示频率这里设置为每训练25次显示一次 net0.trainParam.mc0.01; % 动量因子 net0.trainParam.min_grad1e-6; % 最小性能梯度 net0.trainParam.max_fail6; % 最高失败次数 % net0.trainParam.showWindow false; % net0.trainParam.showCommandLine false; %隐藏仿真界面 %开始训练 net0train(net0,inputn,output_train);%预测 an0sim(net0,inputn_test); %用训练好的模型进行仿真 predict_labelzeros(1,size(an0,2));for i1:size(an0,2)predict_label(i)find(an0(:,i)max(an0(:,i)));endoutputtzeros(1,size(output_test,2));for i1:size(output_test,2)outputt(i)find(output_test(:,i)max(output_test(:,i)));endaccuracysum(outputtpredict_label)/length(outputt); %计算预测的确率 disp([准确率为,num2str(accuracy)]) %% 标准BP神经网络作图 % 画方框图 figure confMat confusionmat(outputt,predict_label); %output_test是真实值标签 zjyanseplotConfMat(confMat.); xlabel(Predicted label) ylabel(Real label) % 作图 figure scatter(1:length(predict_label),predict_label,r*) hold on scatter(1:length(predict_label),outputt,g^) legend(预测类别,真实类别,NorthWest) title({BP神经网络的预测效果,[测试集正确率 ,num2str(accuracy*100), %]}) xlabel(预测样本编号) ylabel(分类结果) box on set(gca,fontsize,12) 代码中注释非常详细有对神经网络构建的注释有对SCNGO-BP代码的注释简单易懂。 代码附带UCI常用的数据集及其解释。大家可以自行尝试别的数据进行分类。附带SCNGO在CEC2005函数的测试代码。 完整代码获取方式后台回复关键词。关键词 : SCNGOBP
http://www.dnsts.com.cn/news/268844.html

相关文章:

  • 西乡建网站公司免费生产管理erp
  • 怎么用手机做抖音上最火的表白网站网站建设朋友圈
  • 文化管 网站建设规划培训计划方案
  • 网站建设哪种语言好网站添加wordpress
  • 做网站的镜像是什么意思做网站基础源代码
  • ps网站页面设计教程网站制作多少钱400
  • 小网站推荐福州盈科网站建设有限公司怎么样
  • 英文互动网站建设参考网是合法网站吗?
  • 网站软件免费下载大全seo快速整站上排名教程
  • 关于网站开发的期刊国际购物平台
  • 无锡网站制作推荐没有数据怎么做网站
  • 深圳网站美化类似视频教程网站的wordpress主题
  • 新手做网站优化怎么做做网站推广需要什么
  • 河南省住房和城乡建设厅门户网站万网在线
  • 上海建网站开发公司专业做政法ppt的网站
  • 专做动漫解说的网站网站怎样做才会被百度收录
  • 公司创建网站多少钱营销案例100例小故事及感悟
  • 著名的网站制作公司WordPress标题删除_
  • 怎样做问卷网站wordpress 关闭自动保存功能
  • 网站维护机构泰安网站建设案例
  • 怎么维护好网站免费做手机网站建设
  • 怎么做网站标题优化九江做网站开发需要多少钱
  • 怎么用源码做网站视频昆明有几个区
  • 免费在线观看韩国电视剧网站推荐包包网站建设策划书
  • 淄博做网站优化做网站公司怎么拉客户
  • 英文网站seo推广企业网站规划
  • 网站开发公司vue框架新媒体营销是干什么的
  • 网站开发保密协议书湖南郴州市旅游景点
  • 徐州企业建站wordpress ip验证不当
  • 中国林业工程建设协会官方网站成都建设厅网站首页