# 一站式机器学习系统 **Repository Path**: PuJing1108/machine-learning-course-design ## Basic Information - **Project Name**: 一站式机器学习系统 - **Description**: 一站式机器学习系统 技术栈:Python、PyQt5、MySQL、TensorFlow/Keras、Scikit-learn、MLP/CNN/ResNet、人脸识别、Git/Gitee 项目描述:独立开发集模型训练、实验管理、用户权限控制于一体的一站式机器学习系统,基于 PyQt5 搭建可视化 UI,集成 MLP/CNN/ResNet 三大算法,适配多数据集训练与预测,实现从数据上传到实验结果存储 - **Primary Language**: Python - **License**: AGPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-06-17 - **Last Updated**: 2026-03-07 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 一站式机器学习系统开发 ## 技术栈: Python、PyQt5、MySQL、TensorFlow/Keras、Scikit-learn、MLP/CNN/ResNet、人脸识别、Git/Gitee ## 项目描述:独立开发集模型训练、实验管理、用户权限控制于一体的一站式机器学习系统,基于 PyQt5 搭建可视化 UI,集成 MLP/CNN/ResNet 三大算法,适配多数据集训练与预测,实现从数据上传到实验结果存储的全流程管理,兼顾实验灵活性与工程化规范。 ## 核心工作与成果: 基于 PyQt5 开发可视化交互界面,实现用户 / 管理员双层权限登录(密码 + 人脸识别),完成用户信息、实验数据的增删改查,实现用户级数据隔离; 集成 MLP、CNN、ResNet 算法,基于 TensorFlow/Keras 搭建网络,通过动态调整输出类别数,实现同一网络结构适配 MNIST、手语字母等多数据集,支持超参数(学习率、批次大小等)自定义调整; 设计并实现 MySQL 数据库表结构(6 张核心表),完成实验数据、模型参数、用户信息的持久化存储,实验结果自动录入并实时展示 Accuracy/Loss 曲线,支持历史结果回溯与对比; 实现模型训练 - 保存 - 预测全流程,训练模型按数据集 + 算法命名,支持单张图片预测,自动匹配对应标签集,提升模型复用性; 基于 Git/Gitee 进行代码版本管理,创建独立开发分支,累计提交 47 次,持续修复 BUG、迭代功能,保证代码工程化与可维护性。 ![项目功能介绍](image.png) # 项目效果展示 ![用户实验界面结果展示](image2.png) ![实验结果表展示](image3.png) ## 总结本次软件开发任务: 本次课程设计任务要求开发一套机器学习实验管理平台。该平台需集机器学习模型训练与信息管理于一体,具备以下核心功能: 1.用户管理:包括用户登录、个人信息修改、个人实验信息管理等。 2.数据集管理:允许用户上传和管理训练集与测试集。 3.模型及参数管理:支持多种机器学习模型的选择和配置,包括至少一种神经网络模型,并能调整至少三种不同的超参数。 4.实验结果管理:展示模型训练结果和评估指标,便于用户分析和比较。 5.应用预测:将训练好的模型应用于新数据集,并展示预测结果。 技术要求包括使用PyQt5进行界面设计,MySQL作为数据库服务器,Scikit-Learn或百度飞浆等作为机器学习模块,Gitee进行代码管理,以及使用VSCode作为开发工具 ## 软件开发心得体会。 通过本次软件设计开发,我获得了宝贵的实践经验和深刻的学习体会: MySQL数据库:我学习了数据库的设计和管理,包括E-R图的绘制、表结构的设计、数据规范化以及SQL语句的编写。这些技能让我能够高效地存储和管理数据。 PyQt5 UI界面:通过PyQt5,我掌握了如何设计用户友好的图形界面,这不仅提升了用户体验,也加深了我对事件驱动编程的理解。 嵌入式SQL语句:学习嵌入式SQL让我理解了程序与数据库交互的重要性,提高了数据处理的效率。 进程与线程:了解进程与线程的概念和应用,增强了我的程序性能优化能力。 神经网络:我深入学习了数据预处理、模型结构设计、模型训练和预测等关键环节,这些是构建高效机器学习模型的基础。 PyQt组件与后端联动:我学会了如何将前端界面与后端逻辑紧密结合,实现动态的用户交互。 函数参数之间的互相调用:掌握了函数间参数传递和调用机制,提高了代码的模块化和复用性。 Gitee仓库代码管理:通过Gitee,我实践了代码版本控制,这不仅帮助我管理代码变更,也促进了团队协作。 多个数据集与算法之间的处理:我学会了如何根据不同的数据集选择合适的算法,并进行相应的超参数调整,以获得最优模型性能。