BP算法-别人用C写的和用Matlab实现的

%导入数据,之后运行如下代码
%输入3维训练向量。已经归一化处理。trainData.txt  。导入数据
P=trainData(:,:);
P=P';%转置
%输出1维期望输出向量。已经归一化处理。expectation.txt
T=expectation(:);
T=T';%转置
%输入向量的取值范围[0,1]。记得是4维
threshold=[0 1; 0 1; 0 1;0 1];

%新建BP网络,隐层神经元个数9(根据网络的性能向大或者向小取值调整)2*n+1,n=4
%输出神经元个数1,
%中间层神经元传递函数tansig(S型正切函数)
%输出层神经元传递函数logsig(S型对数函数)
%训练函数traingdx(梯度下降法学习,且学习速率是自适应的)

net=newff(threshold,[7 1],{'tansig','logsig'},'traingdx');

%网络训练次数
net.trainParam.epochs=1000;

%训练目标
net.trainParam.goal=0.001;

%开始训练
net=train(net,P,T);

 

%导入test.txt,然后运行如下代码
%接着训练部分。
P_Test=test(:,:);
P_Test=P_Test';
Y=sim(net,P_Test);


%加上下面的语句,保存结果到c://result.txt。还是需要处理的,当然比直接复制好多了
%csvwrite('c://result.txt',Y)
%z注意保存结果到自己的工作目录
%%导入result.txt,运行下面代码
%R=result(:);
%Y=result=R
将R导出到excel中
也可在matlab中进行曲线的模拟,源码:
导入testActual.txt,
和result.txt进行比较
注意转置

%假设长度为64
Z=test(:,4);%实际值
x=1:1:64;
plot(x,Y,'b');%预测值
hold on
plot(x,Z,'r');%实际值

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值