资源简介
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版批量添加字符串插件
- 下一篇:电离层数据提取
相关资源
- 计算机图形学 边填充算法实现代码
- 电力系统潮流计算程序集合
- oracle数据迁移项目实施方案
- Web Api 通过文件流 文件到本地
- Visio图标-最新最全的网络通信图标库
- Spire API文档
- OpenGL参考手册
- Python中Numpy库最新教程
- SPD博士V5.3.exe
- 直流无刷电机方波驱动 stm32 例程代码
- layui后台管理模板
- 仿知乎界面小程序源代码
- 云平台-阿里云详细介绍
- photoshop经典1000例
- scratch垃圾分类源码(最终版本).sb
- IAR ARM 7.8破解
- TI CCS V5.4 安装步骤及破解文件
- 松下plc FP-XH的驱动
- 局域网硬件信息收集工具
- 加快Windows XP操作系统开机速度
- 联想启天M4350 BIOS升级文件
- 操作系统教程课后答案华中科技大学
- 用友ERP考试系统练习题库及答案
- 北京邮电大学数据结构历年考研真题
- 真正!!!概率论与数理统计浙江大
- TMS320VC5509A_开发板使用手册
- hxdef100源码、远控、后门
- CentOS-6.7-x86_64-bin-DVD1to2
- 点阵字库显示中英文
- caxa实体设计2019破解补丁
评论
共有 条评论