• 大小: 2KB
    文件类型: .zip
    金币: 2
    下载: 1 次
    发布日期: 2021-08-16
  • 语言: Matlab
  • 标签: matlab  

资源简介

BP神经网络,用于分类和预测。也即模式识别和曲线拟合,是用matlab编写实现

资源截图

代码片段和文件信息

%---------------------------------------------%
%       %
%          工作室提供代做matlab仿真       %
%       %
%  详情请访问:http://cn.mikecrm.com/DeOOXFc  %
%       %
%---------------------------------------------%

clc
clear
%---------------------------------------
%一、对原始输入数据进行归一化
%先从excel文档中导入数据到矩阵P,共7种气体成分,40组数据
p=xlsread(‘originaldata.xlsx‘‘B2:H41‘);
t=xlsread(‘originaldata.xlsx‘‘B41:H41‘); %输出数据,没弄明白是什么!!!!

%归一化数据映射到[01]之间直接用mapminmax函数更简单
% for i=1:40
%   P(i:)=0.1+0.8*(Orig(i:)-min(Orig(i:)))/(max(Orig(i:))-min(Orig(i:)));
% end
[normInputps] = mapminmax(p 0.10.9);
[normTargetts] = mapminmax(t 0.10.9);
%ps处理设置,ps主要在结果反归一化中需要调用

%----------------------------------------
%二、打乱数据顺序,及分类处理(抽取训练数据、变量数据、测试数据)
%将输入的40组数据的20%共8组作为测试数据;
%将数据的20%即8组作为变化数据;
%剩下24组作为正常训练数据;
testPercent = 0.20;  % 测试数据所占百分比
validatePercent = 0.20;  % 变量数据所占百分比
[trainSamplesvalidateSamplestestSamples] = dividevec(normInputnormTargetvalidatePercenttestPercent);

%-----------------------------------------
%三、设置网络参数,设置三层BP网络结构(7个输入,7个输出,隐层单元个数先设置成12个)
%使用newff()函数建立BP网络
net=newff(minmax(normInput)[127]{‘tansig‘‘logsig‘}‘traingdx‘);%创建三层BP网络

%-----------------------------------------
%四、设置训练参数  
net.trainParam.epochs=10000;%设置训练次数
net.trainParam.goal=1e-6;%设置训练目标
net.trainParam.lr=0.01;%设置学习率

%------------------------------------------
% 指定训练函数
net.trainfcn=‘traingdm‘;
[nettr] = train(nettrainSamples.PtrainSamples.T[][]validateSamplestestSamples);

%------------------------------------------
%五、训练完成,调用sim()函数进行仿真
[normTrainOutputPfAfEtrainPerf] = sim(nettrainSamples.P[][]trainSamples.T);%正常输入的9组p数据,BP得到的结果t
[normValidateOutputPfAfEvalidatePerf] = sim(netvalidateSamples.P[][]validateSamples.T);%用作变量3的数据p,BP得到的结果t
[normTestOutputPfAfEtestPerf] = sim(nettestSamples.P[][]testSamples.T);%用作测试的3组数据p,BP得到的结果t

%-------------------------------------------
% 六、仿真后结果数据反归一化,如果需要预测,只需将预测的数据P填入
% 将获得预测结果t
trainOutput = mapminmax(‘reverse‘normTrainOutputts);%正常输入的9组p数据,BP得到的归一化后的结果t
trainInsect = mapminmax(‘reverse‘trainSamples.Tts);%正常输入的9组数据t
validateOutput = mapminmax(‘reverse‘normValidateOutputts);%用作变量3的数据p,BP得到的归一化的结果t
validateInsect = mapminmax(‘reverse‘validateSamples.Tts);%用作变量3的数据t
testOutput = mapminmax(‘reverse‘normTestOutputts);%用作变量3组数据p,BP得到的归一化的结果t
testInsect = mapminmax(‘reverse‘testSamples.Tts);%用作变量3组数据t

%-------------------------------------------
% 数据分析和绘图
%---------------------------------------------------  
figure
plot(1:32[trainOutput validateOutput]‘b-‘1:32[trainInsect validateInsect]‘g--‘33:40testOutput‘m*‘33:40testInsect‘ro‘);
title(‘o为真实值,*为预测值‘)
xlabel(‘年份‘);
ylabel(‘交通量(辆次/昼夜)‘);



 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2019-08-12 15:47  BP神经网络,用于分类和预测。也即模式识别和曲线拟合,是用matlab编写实现\
     文件        3251  2019-08-12 15:50  BP神经网络,用于分类和预测。也即模式识别和曲线拟合,是用matlab编写实现\BPyuce.m

评论

共有 条评论