Tutorial: Matlab 神经网络工具箱GUI
Ref with great thanks:CSDN,Zhihu
载入工具箱
如图打开神经网络工具箱,当前推荐使用NN Fitting
弹出如下界面,上方是原理介绍,感兴趣可以看看。
点击Next即可
数据读取 (关键)
需要从外部载入数据,此处以excel为例,如需要处理hdf等格式可再联系笔者补充
重要快捷键:excel和matlab载入界面通用
同时安下shift+ctrl+方向键可以快速选择整行或整列
下面介绍两种导入excel数据方法
方法一适用于小数据单次训练
方法二适用于数据量较大的
两种方法在反复训练时都可以保存workspace为.m文件以省去重复数据载入的动作
方法一:excel预处理
- 分别保存输入和输出为新的xls文件,可以保留第一行的参数名称呼。但输入参数那列必须单独剪切粘贴到新的xls文件中
- 如下图点击【…】按钮后选择对应输入数据.xls文件
注意选择数据分割方式(row / column )和excel文档匹配
当每个参数的数据保存在一列中时,应选择Matrix columns
导入后确认下图中右方是否维度匹配
无误后next
方法二:导入excel为matlab variables
数据集划分
保持train:val:test=70%:15%:15%即可。
- dataset较小时可以适当增加val, test比例,以保证有足够数据验证训练效果。
- 数据集大时应增加train比例保证更好的训练效果
隐节点数量
默认10,先不变动,如效果不好再改动。也可针对该变量进行多组训练对比其影响。
一般为2的倍数,目前有经验公式,但不存在普适性规律。
一般来说
- 隐节点数量越大,所需训练数据量越大
- 隐节点数量越大,可以学习到更多细节
训练策略
默认levenberg-marquardtz,保持即可。是一种混合牛顿和梯度下降法的步长调整算法。详情可看笔者帖子{LInk:}
训练结果与评价
等待训练完成
主要看R2(点击Regression)和MSE(点击Performance)
- R2越接近1越好
- MSE越接近0越好
下图展示的是Regression R2:
Troubleshooting:
- Train>val>Test
- 如果出现train远大于val,或test,表明数据异常过拟合。请减少隐节点数再次尝试。
- 如出现val, test>train,请再次运行,如频繁出现,建议检查数据分布是否符合正态分布,或skewness是否过大
模型保存与再利用
如下图设置各参数名称后保存即可
保存成功后可见工作区(workspace)出现下图参数:
再次调用网络模型,可在命令行(command window)输入
1 |
Y=sim(net,X); |