资源简介
BP+三个数据集.rar
代码片段和文件信息
clc;
% data = load(‘P.mat‘);
data = importdata(‘Page.mat‘);
%输入输出数据
input=data(:1:10);
output1 =data(:11);
%排序
k=rand(15473);
[mn]=sort(k);
%把输出从1维变成5维
for i=1:5473
switch output1(i)
case 1
output(i:)=[1 0 0 0 0];
case 2
output(i:)=[0 1 0 0 0];
case 3
output(i:)=[0 0 1 0 0];
case 4
output(i:)=[0 0 0 1 0];
case 5
output(i:)=[0 0 0 0 1]
end
end
%随机提取4000个样本为训练样本,1473个样本为预测样本
input_train=input(n(1:4000):)‘;
output_train=output(n(1:4000):)‘;
input_test=input(n(4001:5473):)‘;
output_test=output(n(4001:5473):)‘;
%输入数据归一化
[inputninputps]=mapminmax(input_train);
%% 网络结构初始化
innum=10;
midnum=25;
outnum=5;
%权值初始化
w1=rands(midnuminnum);
b1=rands(midnum1);
w2=rands(midnumoutnum);
b2=rands(outnum1);
w2_1=w2;w2_2=w2_1;
w1_1=w1;w1_2=w1_1;
b1_1=b1;b1_2=b1_1;
b2_1=b2;b2_2=b2_1;
%学习率
xite=0.1
alfa=0.01;
%% 网络训练
for ii=1:10
E(ii)=0;
for i=1:1:4000
%% 网络预测输出
x=inputn(:i);
% 隐含层输出
for j=1:1:midnum
I(j)=inputn(:i)‘*w1(j:)‘+b1(j);
Iout(j)=1/(1+exp(-I(j)));
end
% 输出层输出
yn=w2‘*Iout‘+b2;
%% 权值阀值修正
%计算误差
e=output_train(:i)-yn;
E(ii)=E(ii)+sum(abs(e));
%计算权值变化率
dw2=e*Iout;
db2=e‘;
for j=1:1:midnum
S=1/(1+exp(-I(j)));
FI(j)=S*(1-S);
end
for k=1:1:innum
for j=1:1:midnum
dw1(kj)=FI(j)*x(k)*(e(1)*w2(j1)+e(2)*w2(j2)+e(3)*w2(j3)+e(4)*w2(j4));
db1(j)=FI(j)*(e(1)*w2(j1)+e(2)*w2(j2)+e(3)*w2(j3)+e(4)*w2(j4));
end
end
w1=w1_1+xite*dw1‘;
b1=b1_1+xite*db1‘;
w2=w2_1+xite*dw2‘;
b2=b2_1+xite*db2‘;
w1_2=w1_1;w1_1=w1;
w2_2=w2_1;w2_1=w2;
b1_2=b1_1;b1_1=b1;
b2_2=b2_1;b2_1=b2;
end
end
inputn_test=mapminmax(‘apply‘input_testinputps);
for ii=1:1
for i=1:1473 %4000
%隐含层输出
for j=1:1:midnum
I(j)=inputn_test(:i)‘*w1(j:)‘+b1(j);
Iout(j)=1/(1+exp(-I(j)));
end
fore(:i)=w2‘*Iout‘+b2;
end
end
%根据网络输出找出数据属于哪类
for i=1:1473
output_fore(i)=find(fore(:i)==max(fore(:i)));
end
%BP网络预测误差
error=output_fore-output1(n(4001:5473))‘;
%画出预测Page种类和实际Page种类的分类图
figure(1)
plot(output_fore‘r‘)
hold on
plot(output1(n(4001:5473))‘‘b‘)
legend(‘预测Page类别‘‘实际Page类别‘)
%画出误差图
figure(2)
plot(error)
title(‘BP网络分类误差‘‘fontsize‘12)
xlabel(‘Page类型‘‘fontsize‘12)
ylabel(‘分类误差‘‘fontsize‘12)
%print -dtiff -r600 1-5
k=zeros(15);
%找出判断错误的分类属于哪一类
for i=1:1473
if error(i)~=0
[bc]=max(output_test(:i));
switch c
case 1
k(
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 153899 2017-12-05 22:17 20175428002-胡超\Letter.mat
文件 48400 2017-12-14 01:04 20175428002-胡超\Letter错误率.jpg
文件 3785 2017-12-16 20:19 20175428002-胡超\MyNN.m
文件 5826 2017-12-08 18:18 20175428002-胡超\MyNN1Page.m
文件 5307 2017-12-14 01:00 20175428002-胡超\MyNN2Letter.m
文件 2719 2017-12-16 11:56 20175428002-胡超\MyNN3Spam.m
文件 119771 2017-12-05 22:18 20175428002-胡超\Page.mat
文件 66114 2017-12-08 18:20 20175428002-胡超\Page训练前.jpg
文件 65895 2017-12-08 18:20 20175428002-胡超\Page训练后.jpg
文件 42258 2017-12-08 18:21 20175428002-胡超\Page错误率.jpg
文件 218942 2017-12-05 22:19 20175428002-胡超\Spam.mat
文件 46822 2017-12-16 23:12 20175428002-胡超\Spam错误率.jpg
目录 0 2017-12-17 00:09 20175428002-胡超
----------- --------- ---------- ----- ----
779738 13
- 上一篇:excel 2007版批量添加字符串插件
- 下一篇:电离层数据提取
相关资源
- 指定电话薄的VPN.rar
- 热芋头工作室-万能解密程序CDGDeciph
- 步道乐跑自动模拟跑步软件.doc
- 反译小程序.rar
- upload.rar
-
PotPla
yer最新1080直播源.txt - Intel_Visual_Fortran_XE2011.lic
- linuxredis实战教程视频.txt
- ESP_2dof_model1.mdl.r2012b
- tcl_tk视频教程.txt
- 新建文本文档(2).txt
- dubbo.xsd35669
- LoadRunner性能测试实战.txt
- 32位DEBUG版proj4库的编译.rar
- TaskDialogDemo.zip
- Keyloggers.rar
- 精通VMwarevSphere6.0.txt
- 20161203100407629.doc
- Mye-SMS.exe
- imooc.rar
- Socket网络编程进阶与实战慕课网课程
- jdk11_linux_64.txt
- XianCh_point.shp
- doc(6)
- macOSMojave10.14.6(18G87)cdr.txt
- charging_pile.rar
- 组织相变,动态再结晶.docx
- xf-mccs6.exe
- -优酷采集规则.rar
评论
共有 条评论