news 2026/4/15 14:44:31

基于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/14 2:31:27

SDP协议:实时通信的会话描述基石

引言:数字世界的“会话名片”在实时音视频通信无处不在的今天,一个简单却强大的协议在幕后默默支撑着每一次连接——它就是会话描述协议(SDP)。无论是微信视频通话、在线会议,还是直播平台,SDP都扮演着“会…

作者头像 李华
网站建设 2026/4/15 12:18:55

计算机毕业设计Python+AI大模型智能路线规划数据分析与个性化推荐系统 旅游路线推荐系统 旅游路线规划系统 大数据毕业设计

温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 温馨提示:文末有 CSDN 平台官方提供的学长联系方式的名片! 技术范围:Sprin…

作者头像 李华
网站建设 2026/4/10 1:07:08

YOLO目标检测中的旋转框支持:倾斜物体精确包围

YOLO目标检测中的旋转框支持:倾斜物体精确包围 在工业质检线上,一块PCB板正通过视觉检测工位。图像中数十个微型贴片元件呈斜向排列,彼此间距不足1毫米。传统目标检测模型输出的水平框将多个独立元件“合并”成一个大矩形——系统误判为严重偏…

作者头像 李华
网站建设 2026/4/13 10:30:23

YOLO模型训练资源配额管理:防止滥用的限流策略

YOLO模型训练资源配额管理:防止滥用的限流策略 在AI平台日益普及的今天,一个看似不起眼的问题正在悄然侵蚀系统的稳定性——某个用户提交了一个YOLO训练任务,批大小设为128,图像尺寸拉到12801280,没过几分钟&#xff0…

作者头像 李华
网站建设 2026/4/12 15:46:38

Spring系统架构

Spring Framework是Spring生态圈中最基础的项目,是其他项目的根基Spring Framework学习路线

作者头像 李华