news 2026/4/18 2:59:20

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

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
基于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(平行坐标图)对比预测和真实值,效果拔群

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

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/18 0:25:30

YOLO在智慧校园的应用:学生聚集密度实时监测

YOLO在智慧校园的应用:学生聚集密度实时监测 在教学楼走廊的早高峰时段,一群学生正快速向教室移动;食堂开餐前几分钟,排队人群逐渐密集;一场大雨突至,操场上的学生纷纷涌向连廊避雨——这些看似平常的场景&…

作者头像 李华
网站建设 2026/4/18 1:57:37

YOLO与Velero备份恢复集成:保障集群灾难恢复

YOLO与Velero备份恢复集成:保障集群灾难恢复 在智能制造工厂的边缘计算节点上,一台部署了YOLOv8目标检测模型的Kubernetes集群突然因存储故障宕机——生产线上的视觉质检系统瞬间中断。传统恢复方式需要运维人员手动重建Deployment、重新挂载ConfigMap配…

作者头像 李华
网站建设 2026/4/17 12:47:41

昇腾 (Ascend) NPU 实战指南:在 GitCode Notebook 中玩转 CodeLlama

1.前言 随着大模型技术在软件开发领域的深入应用,越来越多的开发者开始尝试在本地或云端环境部署代码生成模型。华为昇腾(Ascend)计算产业随着 CANN 软件栈的不断成熟,已成为运行各类开源 LLM 的重要算力底座。 本文将以 CodeLl…

作者头像 李华
网站建设 2026/4/18 2:00:03

打卡信奥刷题(2606)用C++实现信奥题 P2476 [SCOI2008] 着色方案

P2476 [SCOI2008] 着色方案 题目描述 有 nnn 个木块排成一行,从左到右依次编号为 111 至 nnn。 你有 kkk 种颜色的油漆,第 iii 种颜色的油漆足够涂 cic_ici​ 个木块。 所有油漆刚好足够涂满所有木块,即 ∑i1kcin\sum_{i1}^kc_in∑i1k​ci​n…

作者头像 李华
网站建设 2026/4/18 1:57:25

20236大模型学习终极指南:30节精品课程+104G资源包,零基础也能成为AI工程师_全方位大模型教程:从基础入门到实战应用,非常详细的大模型教程

《AI大模型系列课》提供30节系统课程,涵盖理论、论文带读及企业项目实战,附赠500论文与104G资源。课程从基础到前沿,包括模型压缩、剪枝、RLHF、微调等核心技术,结合医疗、电商等行业应用。学习后可获得全栈大模型开发能力&#x…

作者头像 李华