matlab中input输入多个数_BP神经网络 Matlab

cc4c123710f38d3997134c305804b8ad.png

一个月前为准备比赛写的,有需要可自取。代码可能还有诸多不足之处,如能指出感激不尽。关于代码的几点说明:

  • 依旧是用matlab写的。
  • 调用了newff函数生成网络。
  • 隐含层神经元节点数的选取:先根据经验法则确定大致范围,然后在范围内选择使误差和最小的节点数(27-51行)。
  • 为避免过拟合,调用了dropout layer函数丢弃部分节点,代码中设置的丢弃比例是0.25。
  • 初始权值阈值是随机生成的,可以用其他智能算法进行优化。这里未优化,所以测试集的预测效果有一定随机性。
  • 其实自己搭建网络也不算复杂,就是把误差反向传递的求导过程完整写出来。但如果只是拿来用一下的话就没必要了,自己搭建的差不多也就是这个模式。最关键的还是节点数和初始权值阈值的设置。

代码:

  1. clear
  2. clc
  3. %%导入数据
  4. load data_Octane.mat
  5. %%数据说明:X为自变量,Y为因变量,new_X为待预测样本的自变量
  6. %%将样本随机分为训练集和测试集
  7. %将50个数字随机排列
  8. rand=randperm(size(X,1));
  9. %划分出训练集,共35个样本
  10. X_train=X(rand(1:35),:)';
  • 3
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值