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

基于mlp的神经网络的红酒品质回归预测

1.作者介绍
王浩宇,男,西安工程大学电子信息学院,2025级研究生
研究方向:古建筑数字化保护
电子邮件:why1904791793@163.com

2 . MLP 神经网络的红酒品质回归预测(PyTorch-free 的 sklearn 全流程实现)知识介绍
2.1 多层感知机(MLP)
MLP 是前馈神经网络,由输入层、隐藏层、输出层组成,层间全连接且通过非线性激活函数引入非线性表达能力:

其中,ReLU 激活函数,Wl为权重、bl 偏置

2.2 回归评估指标
平均绝对误差MAE(又称L1范数损失),即误差绝对值的平均值。MAE可以准确反映实际预测误差的大小。MAE用于评价真实值与拟合值的偏离程度,MAE值越接近于0,说明模型拟合越好,模型预测准确率越高(但是RMSE值还是使用最多的)。
MAE计算公式:

均方误差MSE(又称L2范数损失),即误差平方和的平均值,MSE是衡量模型预测误差的一种常用指标。MSE值越接近于0,说明模型拟合越好。
MSE计算公式:

均方误差根RMSE,是均方误差MSE的算术平方根,回归模型中最常用的评价模型指标。相比于均方误差MSE,均方误差根RMSE更常用。RMSE值越接近0,说明模型拟合越好。
RMSE值计算公式:

R方值是衡量回归模型拟合优度的统计量,它表示回归模型对观测值的拟合程度,代表了模型中因变量可由自变量解释的百分比。R方值的取值范围在0到1之间,R方值越大,说明回归模型对观测值的拟合程度越好。比如R方为0.5,说明所有自变量可以解释因变量50%的变化原因。
R方计算公式如下

2.3 数据标准化
神经网络对输入尺度敏感,采用两阶段标准化:

  1. 特征标准化:StandardScaler将11个特征转为零均值、单位方差;
  2. 目标值标准化:TransformedTargetRegressor包裹 MLP,自动标准化 quality并在预测时还原(提升训练稳定性)。
  3. 实验设计与实现
    3.1 数据集准备
    3.1.1 数据来源
    UCI Machine Learning Repository:
    下载地址:https://archive.ics.uci.edu/ml/machine-learning-databases/wine-quality/winequality-red.csv
    3.1.2 数据集概览

    3.1.3 特征说明

    3.1.4 数据预处理
  • 自动兼容分号/逗号分隔的 CSV 格式;
  • 固定随机种子划分训练/测试集;
  • 特征+目标值双标准化。
    3.2 模型架构与超参数
    3.2.1 模型结构

    3.2.2 核心超参数

    3.2.3 Pipeline 管道
    Pipeline([
    (“feature_scaler”, StandardScaler()), # 特征标准化
    (“model”, TransformedTargetRegressor( # 目标值标准化+MLP
    regressor=MLPRegressor(…),
    transformer=StandardScaler()
    ))
    ])

3.3 核心代码片段
3.3.1 数据加载

defload_dataset(path:Path)->tuple[pd.DataFrame,pd.Series]:# 自动兼容分号/逗号分隔的 CSV 格式data=pd.read_csv(path,sep=None,engine="python")ifdata.shape[1]==1and";"instr(data.columns[0]):data=pd.read_csv(path,sep=";",quotechar='"')x=data[FEATURE_COLUMNS]y=data[TARGET_COLUMN]returnx,y

3.3.2 模型构建

defbuild_model(hidden_layers,max_iter,random_state)->Pipeline:mlp=MLPRegressor(hidden_layer_sizes=tuple(hidden_layers),activation="relu",solver="adam",alpha=0.0005,max_iter=max_iter,early_stopping=True,validation_fraction=0.15,n_iter_no_change=40,)returnPipeline([("feature_scaler",StandardScaler()),("model",TransformedTargetRegressor(regressor=mlp,transformer=StandardScaler())),])

3.3.3 模型评估

defevaluate(y_true,y_pred)->dict:mse=mean_squared_error(y_true,y_pred)return{"mae":float(mean_absolute_error(y_true,y_pred)),"mse":float(mse),"rmse":float(np.sqrt(mse)),"r2":float(r2_score(y_true,y_pred)),}

3.4 运行方式
3.4.1 环境安装
python -m venv .venv
…venv\Scripts\Activate.ps1
pip install -r requirements.txt
3.4.2 训练模型
#默认参数训练
python train_mlp_wine_quality.py
#自定义参数
python train_mlp_wine_quality.py --hidden-layers 256 128 64 --max-iter 3000
#使用自定义数据
python train_mlp_wine_quality.py --data .\data\my_red_wine.csv
3.4.3 预测新样本
python predict.py --input .\data\new_wines.csv
4. 实验结果与分析
4.1 性能指标

关键结论:

  • 测试集 MAE=0.458,相比基线提升约33%;
  • R²=0.501,模型可解释50%的品质方差;
  • 训练/测试集指标差距合理,无严重过拟合。
    4.2 可视化结果


    4.3 误差分析
  • 残差以0为中心呈正态分布,无系统性偏差;
  • 边缘评分(3/8分)样本少,预测误差较大(数据不平衡);
  • 中间评分(5/6分)预测最准(训练样本多)。
  1. 项目文件结构
    基于mlp的神经网络的红酒品质回归预测/
    ├── train_mlp_wine_quality.py # 训练主脚本
    ├── predict.py # 预测脚本
    ├── render_code_card.py # 代码卡片渲染
    ├── requirements.txt # 依赖清单
    ├── README.md # 项目说明
    ├── data/
    │ ├── winequality-red.csv # 原始数据集
    │ └── new_wines.csv # 待预测样本
    └── outputs/
    ├── mlp_wine_quality_model.joblib # 训练好的模型
    ├── metrics.json # 评估指标
    ├── test_predictions.csv # 测试集预测结果
    ├── new_predictions.csv # 新样本预测结果
    ├── prediction_scatter.png # 散点图
    ├── true_vs_rounded_pred_heatmap.png # 热力图
    ├── residual_hist.png # 残差直方图
    └── result_summary.png # 结果汇总图
  2. 总结与改进方向
    6.1 总结
    本文基于 sklearn 实现了 MLP 红酒品质回归预测,模型轻量化(数MB)、性能优于基线,适合教学和轻量部署。
    6.2 改进方向
    1 .类别不平衡:对边缘评分样本过采样/调整损失权重;
    2 . 模型升级:对比 XGBoost/随机森林,或升级为 TabNet/PyTorch 模型;
    3 .特征工程:构造交互项(如 pH×酸度、酒精度×残糖);
    4 .任务转换:将回归改为分类(低/中/高档次),评估准确率。
    参考文献
    [1] Cortez, P., et al. (2009). Wine Quality Data Set. UCI Machine Learning Repository.
    [2] scikit-learn MLPRegressor 官方文档:https://scikit-learn.org/stable/modules/generated/sklearn.neural_network.MLPRegressor.html
    [3] scikit-learn TransformedTargetRegressor:https://scikit-learn.org/stable/modules/generated/sklearn.compose.TransformedTargetRegressor.html
    [4] https://www.zhihu.com/question/595477316/answer/3288447234
http://www.jsqmd.com/news/893927/

相关文章:

  • 27考研311教育学历年真题PDF
  • 趣味智能陪伴!基于魔珐星云的宠物专属数字助手
  • 臺灣大學校總區無車化執行方案與推動時程整體規劃案(繁) 2025
  • 别再为高维数据发愁了!用Python手把手教你实现粗糙集属性约简(附完整代码)
  • ubuntu下stlink(v1/v2/v3)实现GD32下载程序
  • 从美术资源到可动角色:聊聊Unity中序列帧动画的性能优化与最佳实践
  • 告别龟速!实测FastCopy 3.92在Windows 11上拷贝百万小文件,速度提升10倍不止
  • 2026年4月成都火锅品牌口碑推荐,烧菜火锅/特色美食/美食/社区火锅/火锅,成都火锅品牌找哪家 - 品牌推荐师
  • 告别调参玄学:用Python手把手实现L1-ball投影,给你的模型加个‘稀疏’开关
  • 2026年5月江夏地区高亮LED大灯专业服务对接与品牌深度解析 - 2026年企业资讯
  • 基于CT+NMF+ANN的鲁棒图像水印技术:原理、实现与优化
  • 悄悄用 Go 重写 AI 基础设施:NVIDIA 的 GPU 云平台为何选择 Go?
  • 基于Vision Transformer的无监督域自适应行人重识别:提示与调优两阶段方法
  • 网络排障手记:同网段内两个IP,为何Ping的结果一好一坏?
  • 2026靠谱爱普生UV打印机品牌推荐:图文数码打印机、小批量包装打印机、烫金增效打印机、礼盒数码打样机、逆向UV数码打印机选择指南 - 优质品牌商家
  • 2026绵阳沟通障碍康复机构优质推荐榜:绵阳语言障碍/绵阳刻板行为康复/绵阳发育迟缓/绵阳多动症/绵阳孤独症/绵阳感统训练/选择指南 - 优质品牌商家
  • 数据分析师证书在营销策划岗位中的重要性
  • SHINE:基于内存解耦架构的分布式HNSW索引设计与优化
  • 2026中式瓦厂家权威名录:四川青瓦厂家、小青瓦厂家、仿古建筑砖瓦厂家、仿古建筑青瓦厂家、仿古琉璃瓦厂家、仿古瓦厂家选择指南 - 优质品牌商家
  • 实战派指南:用Python的sklearn库,5分钟搞定PCA、LDA和t-SNE可视化
  • 跨模态检索新突破:从一对一配对到多对多语义关系建模
  • 为什么92%的预约系统在活动峰值崩溃?Lovable底层时序调度器设计原理与3种降级预案详解
  • 基于LDA的Olivetti人脸降维与身份识别
  • 2026年5月新疆凉亭直销厂家推荐电话:聚焦本土制造与定制化服务能力 - 2026年企业资讯
  • 2026乐山美食攻略:乐山本地人推荐的小吃/乐山本地人美食推荐/乐山特色小吃店/乐山特色小吃有哪些/乐山美食什么好吃/选择指南 - 优质品牌商家
  • Unity 2020.1 新手必看:用Sprite Editor快速搞定天天酷跑同款角色动画(附Demo工程)
  • Docker安装常见数据库命令汇总(2026)
  • 手把手教你用Python处理LSP人体姿态数据集(附可视化代码)
  • 从工具到AI操作系统:Agent技术演进全解析(2026)
  • 基于机器学习的推特情感分析:从数据清洗到模型评估的完整实践