当前位置: 首页 > news >正文

基于Matlab的MLP多层感知机多输入多输出预测:处理数据集与评估性能

MLP多层感知机多输入多输出预测(Matlab) 所有程序经过验证,保证有效运行。 1.data为数据集,10个输入特征,3个输出变量。 2.MainMLPNM.m为主程序文件。 3.命令窗口输出MAE和R2,

最近在折腾Matlab的神经网络工具箱,发现用MLP做多输入多输出的预测其实挺有意思。咱们今天拿个实际案例开刀——10个输入特征预测3个输出变量,手把手带你看怎么玩转这个流程。(代码都跑通了,放心食用)

先看数据准备这块,数据标准化是必须的。Matlab的mapminmax用着顺手:

% 数据归一化 [inputn, inputps] = mapminmax(input_train'); [outputn, outputps] = mapminmax(output_train'); inputn = inputn'; outputn = outputn';

这里有个坑要注意——输出层的反归一化得用训练集的参数,别用测试集的。见过有人在这里翻车,预测结果直接飞了。

网络结构咱们用单隐层试试水。个人经验是隐藏层节点数通常取输入输出的平均值再取整,这里取(10+3)/2≈7,不过实际可以多试几个值:

hiddenLayerSize = 7; net = fitnet(hiddenLayerSize); net.layers{1}.transferFcn = 'tansig'; % 隐层用tanh激活 net.layers{2}.transferFcn = 'purelin'; % 输出层线性激活

训练参数配置这块,推荐把显示间隔调小点方便观察:

net.trainParam.showWindow = true; net.trainParam.showCommandLine = false; net.trainParam.epochs = 200; net.trainParam.goal = 1e-5; net.trainParam.max_fail = 10; % 早停法防止过拟合

开始训练的时候记得监控loss曲线。Matlab新版支持直接plot训练过程,老版本可以用trainrecord变量记录:

[net, tr] = train(net, inputn', outputn'); plotperform(tr)

预测部分要注意数据流向。测试集输入先走训练集的归一化参数,输出结果再反归一化:

% 测试集预测 inputn_test = mapminmax('apply', input_test', inputps)'; y_pred = net(inputn_test'); y_pred = mapminmax('reverse', y_pred, outputps)';

评估指标这块,自己写了个双料评估函数:

function [mae, r2] = eval_metrics(actual, pred) mae = mean(abs(pred - actual)); ss_tot = sum((actual - mean(actual)).^2); ss_res = sum((actual - pred).^2); r2 = 1 - (ss_res / ss_tot); end

输出结果长这样:

MAE: [0.12, 0.09, 0.15]

R²: [0.94, 0.96, 0.92]

最后说几个实战经验:

  1. 数据量少的时候建议用贝叶斯正则化训练,能有效防过拟合
  2. 输出变量量纲差异大时,建议分开训练三个网络
  3. 可视化输出的时候用parcoord(平行坐标图)对比预测和真实值,效果拔群

完整代码里还有数据分割、结果可视化这些模块,这里就不全贴了。遇到特征工程或者超参调优的问题,欢迎留言讨论——调参这事儿吧,有时候玄学得很,得看数据和任务的缘分。

http://www.jsqmd.com/news/155369/

相关文章:

  • YOLO与Kyverno策略引擎集成:K8s安全合规校验
  • 计算机毕业设计Python+AI大模型智能路线规划数据分析与个性化推荐系统 旅游路线推荐系统 旅游路线规划系统 大数据毕业设计
  • YOLO模型缓存雪崩防范:随机过期时间设置技巧
  • 考虑异质偏好的微网/产消者P2P分布式能源交易机制-100%原创代码 摘要:本代码主要做的是分...
  • YOLO目标检测中的注意力机制引入:提升特征提取能力
  • GDKOI 2025 游记
  • YOLO与Argo CD持续交付集成:GitOps模式实践
  • YOLO与Knative无服务器集成:实现事件驱动的推理
  • YOLO目标检测中的小目标识别难题破解思路
  • 新手指南之大纲设定(飞卢)
  • 梨忆
  • YOLO模型灰度发布期间用户反馈收集机制
  • YOLO模型灰度版本灰度比例动态调整策略
  • YOLO与Grafana Loki日志聚合集成:高效查询海量日志
  • YOLO与Kiali服务拓扑可视化集成:直观查看调用关系
  • YOLO模型灰度版本灰度范围扩展策略
  • YOLO在高速公路监控的应用:违章停车自动抓拍
  • 打卡信奥刷题(2604)用C++实现信奥题 P2441 角色属性树
  • YOLO模型灰度发布前后AB对比实验设计
  • YOLO与Velero备份恢复集成:保障集群灾难恢复
  • 大数据OLAP中的预计算技术深度剖析
  • 卧龙给你算笔帐
  • YOLO模型训练任务排队系统:公平调度所有提交作业
  • hadoop配置
  • YOLO在智能楼宇的应用:电梯内人数统计与超载预警
  • YOLO在机场跑道监测的应用:飞行器与车辆识别
  • YOLO目标检测中的旋转框支持:倾斜物体精确包围
  • 打卡信奥刷题(2605)用C++实现信奥题 P2458 [SDOI2006] 保安站岗
  • 2025最新!专科生必看9大AI论文工具测评与推荐
  • YOLO模型缓存击穿防御:互斥锁与双重检查机制