资源简介
2个matlab BP分类代码

代码片段和文件信息
clc;
clear all;
close all;
InNeuron=4; %输入神经元节点
HiddenNeuron=10; %隐层神经元节点
OutNeuron=3; %输出神经元节点
lr=0.01; %学习效率
E=0.0000001; %目标误差
MaxTextTimes=10000; %最多训练次数
%读入两个文件
Train=load(‘Iris-test.txt‘);
Train %查看训练集
Train=Train(:1:4);
Train=Train‘;
Test=load(‘Iris-train.txt‘);
Test %查看检测集
Test=Test(:1:4);
Test=Test‘;
%标准化输出
SamOut=[repmat([1;0;0]125) repmat([0;1;0]125) repmat([0;0;1]125)];%三种类型的花及相应输出
SamIn=Train;%开始训练
%归一化
[Trainps]=mapminmax(Train01);
Test=mapminmax(Test01);
%设置权值与阈值(rand随机产生)
W1=rand(HiddenNeuronInNeuron);
B1=rand(HiddenNeuron1);
W2=rand(OutNeuronHiddenNeuron);
B2=rand(OutNeuron1);
%误差记录
ErrHistory=[];
for step=1:MaxTextTimes
HiddenOut=logsig(W1*Train); %隐含层输出
NetworkOut=logsig(W2*HiddenOut); %输出层输出
Error=SamOut-NetworkOut;%误差
SSE=sumsqr(Error);%平方求和
ErrHistory=[ErrHistory SSE];
if SSE %调整权值和阈值
delta2=NetworkOut.*(1-NetworkOut).*(SamOut-NetworkOut);
w=W2;
W2= W2+lr*(HiddenOut*delta2‘)‘;
B2=w;%阈值
delta1=HiddenOut.*(1-HiddenOut).*(W2‘*delta2);%调整隐含层加权系数
w=W1;
W1=W1+lr*(Train*delta1‘)‘;
B1=w;
end
HiddenOut=logsig(W1*Test); %使用logsig激活函数求出隐含层输出最终结果
NetworkOut=logsig(W2*HiddenOut); %使用logsig激活函数求出输出层输出最终结果
%将输出层最终结果和目标输出结果对应起来
NetworkOut(find(NetworkOut<=0.5))=0;
NetworkOut(find(NetworkOut>=0.5))=1;
NetworkOut%输出网络结果
%通过匹配求解出成功率
Result =~sum(abs(NetworkOut-SamOut));
Percent = sum(Result)/length(Result)
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
目录 0 2015-10-31 11:00 2个BPMatlab例子\BP\
文件 1724 2015-10-31 16:56 2个BPMatlab例子\BP\BP.m
文件 1424 2015-10-23 14:29 2个BPMatlab例子\BP\Iris-test.txt
文件 1425 2015-10-23 14:29 2个BPMatlab例子\BP\Iris-train.txt
目录 0 2018-11-14 17:00 2个BPMatlab例子\bp_class\
文件 1332 2015-01-13 17:14 2个BPMatlab例子\bp_class\BP_demo.m
文件 2210 2015-01-13 16:54 2个BPMatlab例子\bp_class\irisdata.mat
- 上一篇:PMSM 电流环闭环
- 下一篇:matlab实现 中值滤波去除基线漂移
相关资源
- matlab_OFDM调制解调(来自剑桥大学)
- Matlab路面裂缝识别69319
- 高灵敏度GPS接收机MATLAB仿真,附捕获
- 基于MATLAB的质点弹道计算与外弹道优
- 阵列天线的matlab仿真
- MATLAB 经典程序源代码大全
- MATLAB小波软阈值去噪代码33473
- 天线阵的波束形成在MATLAB仿真程序及
- 非线性SVM算法-matlab实现
- 《MATLAB 智能算法超级学习手册》-程序
- 组合导航matlab程序
- 读取txt文件内容matlab代码实现
- Matlab实现基于相关的模板匹配程序
- matlab优化工具箱讲解
- 基于MATLAB的快速傅里叶变换
- 光纤传输中的分布傅立叶算法matlab实
- 基于matlab的图像处理源程序
- matlab 椭圆拟合程序
- 算术编码解码matlab源代码
- optical_flow 光流法 matlab 实现程序
- 引导图像滤波器 Matlab实现
- 分形几何中一些经典图形的Matlab画法
- OFDM系统MATLAB仿真代码
- SVM工具箱(matlab中运行)
- 图像小波变换MatLab源代码
- LU分解的MATLAB实现
- 冈萨雷斯数字图像处理matlab版(第三
- 替代数据法的matlab程序
- 用matlab实现的多站定位系统性能仿真
- 通过不同方法进行粗糙集属性约简m
评论
共有 条评论