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

神经网络实验——MLP

目录

1 目的

2 方法

3 源代码

4 结果


1 目的

①熟悉 Python 的输入输出流;
②学会使用 matplotlib进行图像可视化;
③掌握神经网络的基本原理,学会使用 sklearn 库中的 MLPClassifier 函数构建基础的多层感知机神经网络分类器;
④学会使用网格查找进行超参数优化。

2 方法

①读取并解压 mnist.gz文件,并区分好训练集与测试集;
②查看数据结构,对手写字符进行可视化展示;
③构建多层感知机神经网络模型,并使用网格查找出最优参数;
④输出模型的最优参数以及模型的预测精度。

3 源代码

①启动 Spyder,新建.py 文件,加载试验所需模块

# 导入相关模块
from sklearn.neural_network import MLPClassifier
from sklearn.model_selection import GridSearchCV
import numpy as np
import pickle
import gzip
import matplotlib. pyplot as plt

②加载数据,数据文件保存在 mnist.gz 安装包中,因此需要对文件进行解压后对文件进行读取,且区分训练集、测试集与验证集

#解压数据并进行读取
with gzip.open(r"D:\大二下\数据挖掘\神经网络\mnist.gz") as fp:training_data, valid_data, test_data= pickle.load(fp,encoding='bytes') 
#区分训练集与测试集
X_training_data,y_training_data= training_data
X_valid_data,y_valid_data= valid_data
X_test_data, y_test_data= test_data

③查看数据的结构,为后续建模做准备:

#定义函数show_data_struct 用于展示数据的结构
def show_data_struct():print(X_training_data.shape,y_training_data.shape)print(X_valid_data.shape,y_valid_data.shape)print(X_test_data.shape,y_test_data.shape)print(X_training_data[0])print(y_training_data[0])
#使用show_data_struct 函数进行数据展示
show_data_struct()

④为了更好地了解数据的形态,对手写字符进行可视化展示

#定义函数用于可视化字符的原有图像
def show_image():plt.figure(1)for i in range(10):image=X_training_data[i]pixels=image.reshape((28,28))plt.subplot(5,2,i+1)plt.imshow(pixels,cmap='gray')plt.title(y_training_data[i])plt.axis('off')plt.subplots_adjust(top=0.92,bottom=0.08,left=0.10,right=0.95, hspace=0.45,wspace=0.85)plt.show()
#使用show_image函数进行图像展示
show_image()

⑤构建参数字典,用于后续使用网格查找进行超参数优化

#字典中用于存放的 MLPClassifier 函数的参数列表
mlp_clf__tuned_parameters= {"hidden_layer_sizes":[(100,),(100,30)],"solver":[' adam', 'sgd', 'bfgs'],"max_iter":[20],"verbose":[True]}

⑥使用MLPClassifier 丽数构建多层感知机神经网络,并使用GridSearchCV 网格查找进行超参数优化,找出最合适的参数

#构建多层感知机分类器
mlp=MLPClassifier()
#通过网格查找出最优参数
estimator= GridSearchCV(mlp,mlp_clf__tuned_parameters,n_jobs=6)
#拟合模型
estimator.fit(X_training_data, y_training_data)
#输出最优参数
print(estimator.best_params_)
#输出模型的预测精度
print(estimator.score(X_test_data, y_test_data))

4 结果

(50000, 784) (50000,)

(10000, 784) (10000,)

(10000, 784) (10000,)

[0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.01171875 0.0703125  0.0703125  0.0703125

 0.4921875  0.53125    0.68359375 0.1015625  0.6484375  0.99609375

 0.96484375 0.49609375 0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.1171875  0.140625   0.3671875  0.6015625

 0.6640625  0.98828125 0.98828125 0.98828125 0.98828125 0.98828125

 0.87890625 0.671875   0.98828125 0.9453125  0.76171875 0.25

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.19140625

 0.9296875  0.98828125 0.98828125 0.98828125 0.98828125 0.98828125

 0.98828125 0.98828125 0.98828125 0.98046875 0.36328125 0.3203125

 0.3203125  0.21875    0.15234375 0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.0703125  0.85546875 0.98828125

 0.98828125 0.98828125 0.98828125 0.98828125 0.7734375  0.7109375

 0.96484375 0.94140625 0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.3125     0.609375   0.41796875 0.98828125

 0.98828125 0.80078125 0.04296875 0.         0.16796875 0.6015625

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.0546875  0.00390625 0.6015625  0.98828125 0.3515625

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.54296875 0.98828125 0.7421875  0.0078125  0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.04296875

 0.7421875  0.98828125 0.2734375  0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.13671875 0.94140625

 0.87890625 0.625      0.421875   0.00390625 0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.31640625 0.9375     0.98828125

 0.98828125 0.46484375 0.09765625 0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.17578125 0.7265625  0.98828125 0.98828125

 0.5859375  0.10546875 0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.0625     0.36328125 0.984375   0.98828125 0.73046875

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.97265625 0.98828125 0.97265625 0.25       0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.1796875  0.5078125  0.71484375 0.98828125

 0.98828125 0.80859375 0.0078125  0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.15234375 0.578125

 0.89453125 0.98828125 0.98828125 0.98828125 0.9765625  0.7109375

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.09375    0.4453125  0.86328125 0.98828125 0.98828125 0.98828125

 0.98828125 0.78515625 0.3046875  0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.08984375 0.2578125  0.83203125 0.98828125

 0.98828125 0.98828125 0.98828125 0.7734375  0.31640625 0.0078125

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.0703125  0.66796875

 0.85546875 0.98828125 0.98828125 0.98828125 0.98828125 0.76171875

 0.3125     0.03515625 0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.21484375 0.671875   0.8828125  0.98828125 0.98828125 0.98828125

 0.98828125 0.953125   0.51953125 0.04296875 0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.53125    0.98828125

 0.98828125 0.98828125 0.828125   0.52734375 0.515625   0.0625

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.         0.         0.

 0.         0.         0.         0.        ]

5

通过观察数据结构可知,数据由 10000个样本组成,其中每一个样本是由784(28*28)个像素组成的图像,像素黑白用 0/1 进行表示,对应的label目标变量的每个字符图像的真实标签。

由图可知,MNIST数据由手写字符图像和标签组成。

通过对 MLP分类器的学习可见,模型经过 20次迭代,loss 不断减少0.2320587后达到拟合状态。

由输出结果可见,通过 GridSearchCV 网格查到的最优参数为:隐藏层数为(100,30),最大池化层为 20,激活函数为sgd;且此时多层感知机神经网络MNIST手写字符识别的准确率达到了 0.9347。

相关文章:

神经网络实验——MLP

目录 1 目的 2 方法 3 源代码 4 结果 1 目的 ①熟悉 Python 的输入输出流; ②学会使用 matplotlib进行图像可视化; ③掌握神经网络的基本原理,学会使用 sklearn 库中的 MLPClassifier 函数构建基础的多层感知机神经网络分类器; ④学会使用网格查找进行超参数优…...

配置Api自动生成

我的飞书:https://rvg7rs2jk1g.feishu.cn/docx/TVlJdMgYLoDJrsxAwMgcCE14nxt 使用Springfox Swagger生成API,并导入Postman,完成API单元测试 Swagger: 是一套API定义的规范,按照这套规范的要求去定义接口及接口相关信息,再通过可…...

dify-AI 私有部署可修改前端页面

dify文档 官方文档:欢迎使用 Dify | Dify 源码:https://github.com/langgenius/dify.git 安装docker 官网:https://www.docker.com/ 部署服务到docker cd dify cd docker cp .env.example .env docker compose up -d查看效果 http://localh…...

使用 @Results 注解来手动指定字段映射

在 MyBatis 中,Results 注解用于手动指定查询结果的字段映射,尤其当数据库列名与 Java 对象的字段名不一致时。你可以通过 Results 和 Result 注解来精确控制每一列与类属性之间的映射关系。 示例:使用 Results 注解来手动指定字段映射 假设你…...

数据治理中 大数据处理一般都遵循哪些原则

在数据治理中,大数据处理通常遵循以下原则: 最小化原则:企业应只收集实现特定目的所需的数据,避免数据冗余和安全风险。 合法性原则:企业必须遵守相关法律法规,确保数据处理符合法律要求,降低法…...

从0到1:STM32温控系统开发踩坑指南

1. 设计目标 核心功能&#xff1a;实现0-100℃范围内的温度闭环控制 性能指标&#xff1a; 测量精度&#xff1a;0.5℃&#xff08;使用DS18B20传感器&#xff09; 控制响应时间&#xff1a;<5秒 显示分辨率&#xff1a;0.1℃ 扩展功能&#xff1a; LCD实时显示当前温度…...

修改时无条件,可以自定义id条件(通过查询)

在这段代码中&#xff0c;$(row).attr(data-rarity, data.rarity); 的作用是给表格的每一行 (row) 添加一个 data-rarity 的自定义属性&#xff0c;属性的值是该行数据中的 rarity 字段。 解释&#xff1a; 1.row 是当前行的 DOM 元素。 2.data.rarity 是从 data 对象中获取的…...

工业制造能耗管理新突破,漫途MTIC-ECM平台助力企业绿色转型!

在工业制造领域&#xff0c;能源消耗一直是企业运营成本的重要组成部分。随着“双碳”目标的推进&#xff0c;如何实现高效能耗管理&#xff0c;成为制造企业亟待解决的问题。漫途MTIC-ECM能源能耗在线监测平台&#xff0c;结合其自研的硬件产品&#xff0c;为工业制造企业提供…...

实现一个简单的协同过滤推荐算法

题目描述&#xff1a; 协同过滤是推荐系统中的一种常用技术&#xff0c;其基本思想是利用用户之间的相似性或物品之间的相似性来进行推荐。本次面试题要求实现一个基于用户的协同过滤推荐算法。 具体要求&#xff1a; 定义两个类&#xff1a;User 和 Item&#xff0c;分别表示用…...

eNSP防火墙综合实验

一、实验拓扑 二、ip和安全区域配置 1、防火墙ip和安全区域配置 新建两个安全区域 ip配置 Client1 Client2 电信DNS 百度web-1 联通DNS 百度web-2 R2 R1 三、DNS透明代理相关配置 1、导入运营商地址库 2、新建链路接口 3、配置真实DNS服务器 4、创建虚拟DNS服务器 5、配置D…...

操作系统知识(二)

1、线程切换进行了哪些动作 在操作系统中&#xff0c;线程切换&#xff08;也称为上下文切换&#xff09;是指操作系统将 CPU 的控制权从一个线程转移到另一个线程的过程。这个过程涉及多个步骤和动作&#xff0c;主要包括以下几个方面&#xff1a; 1. 保存当前线程的上下文 …...

图论:tarjan 算法求解强连通分量

题目描述 有一个 n n n 个点&#xff0c; m m m 条边的有向图&#xff0c;请求出这个图点数大于 1 1 1 的强连通分量个数。 输入格式 第一行为两个整数 n n n 和 m m m。 第二行至 m 1 m1 m1 行&#xff0c;每一行有两个整数 a a a 和 b b b&#xff0c;表示有一条…...

Spring中Bean的四种实例化方法

Bean的四种实例化方法 Bean是Spring核心的概念&#xff0c;另外一个核心的概念是AOP。官网上&#xff0c;Bean的解释是&#xff1a; In Spring, the objects that form the backbone of your application and that are managed by the Spring IoC container are called beans…...

专利申请要求

专利申请并不要求发明已经实际制造出来&#xff0c;但需要具备完整且可行的技术方案。以下是详细的解释和申请流程&#xff1a; 一、专利申请的核心要求 技术方案而非实物 专利保护的是创新性的技术方案或设计理念&#xff0c;而非实物产品本身。只要你能清晰描述技术原理、结构…...

解锁 JavaScript 异步编程:Promise 链式操作、async/await 与 Promise.all 深度剖析

1.引言 在 JavaScript 的世界里,异步编程是一个核心且关键的概念。随着 Web 应用的复杂度不断提升,处理多个异步操作的需求也日益增长。传统的回调函数方式容易陷入 “回调地狱”,让代码的可读性和可维护性大打折扣。而 Promise 的出现为异步编程带来了新的曙光,后续又衍生…...

Centos虚拟机扩展磁盘空间

Centos虚拟机扩展磁盘空间 扩展前后效果1 虚拟机vmware关机后&#xff0c;编辑2 扩展2.1 查看2.2 新建分区2.3 格式化新建分区ext42.3.1 格式化2.3.2 创建2.3.3 修改2.3.4 查看 2.4 扩容2.4.1 扩容2.4.1 查看 扩展前后效果 df -h1 虚拟机vmware关机后&#xff0c;编辑 2 扩展 …...

记录一次部署PC端网址全过程

当我查看我之前写的文章时、顿时惊奇发出感慨&#xff1a;啥时候写的&#xff1f;是我写的么&#xff1f;疑惑重重… 所以说&#xff0c;好记性不如烂笔头。 记录一次部署PC端网址全过程 部署PC端网址分是三步&#xff1a;第一步&#xff1a;申请域名并映射到外网IP &#xff0…...

利用 OpenCV 进行棋盘检测与透视变换

利用 OpenCV 进行棋盘检测与透视变换 1. 引言 在计算机视觉领域&#xff0c;棋盘检测与透视变换是一个常见的任务&#xff0c;广泛应用于 摄像机标定、文档扫描、增强现实&#xff08;AR&#xff09; 等场景。本篇文章将详细介绍如何使用 OpenCV 进行 棋盘检测&#xff0c;并…...

Java Spring boot 篇:常用注解

Configuration 作用 Configuration 注解的核心作用是把一个类标记为 Spring 应用上下文里的配置类。配置类就像一个 Java 版的 XML 配置文件&#xff0c;能够在其中定义 Bean 定义和 Bean 之间的依赖关系。当 Spring 容器启动时&#xff0c;会扫描这些配置类&#xff0c;解析其…...

#渗透测试#批量漏洞挖掘#Apache Log4j反序列化命令执行漏洞

免责声明 本教程仅为合法的教学目的而准备,严禁用于任何形式的违法犯罪活动及其他商业行为,在使用本教程前,您应确保该行为符合当地的法律法规,继续阅读即表示您需自行承担所有操作的后果,如有异议,请立即停止本文章读。 目录 Apache Log4j反序列化命令执行漏洞 一、…...

KubeSphere 容器平台高可用:环境搭建与可视化操作指南

Linux_k8s篇 欢迎来到Linux的世界&#xff0c;看笔记好好学多敲多打&#xff0c;每个人都是大神&#xff01; 题目&#xff1a;KubeSphere 容器平台高可用&#xff1a;环境搭建与可视化操作指南 版本号: 1.0,0 作者: 老王要学习 日期: 2025.06.05 适用环境: Ubuntu22 文档说…...

python打卡day49

知识点回顾&#xff1a; 通道注意力模块复习空间注意力模块CBAM的定义 作业&#xff1a;尝试对今天的模型检查参数数目&#xff0c;并用tensorboard查看训练过程 import torch import torch.nn as nn# 定义通道注意力 class ChannelAttention(nn.Module):def __init__(self,…...

React Native 开发环境搭建(全平台详解)

React Native 开发环境搭建&#xff08;全平台详解&#xff09; 在开始使用 React Native 开发移动应用之前&#xff0c;正确设置开发环境是至关重要的一步。本文将为你提供一份全面的指南&#xff0c;涵盖 macOS 和 Windows 平台的配置步骤&#xff0c;如何在 Android 和 iOS…...

【快手拥抱开源】通过快手团队开源的 KwaiCoder-AutoThink-preview 解锁大语言模型的潜力

引言&#xff1a; 在人工智能快速发展的浪潮中&#xff0c;快手Kwaipilot团队推出的 KwaiCoder-AutoThink-preview 具有里程碑意义——这是首个公开的AutoThink大语言模型&#xff08;LLM&#xff09;。该模型代表着该领域的重大突破&#xff0c;通过独特方式融合思考与非思考…...

Neo4j 集群管理:原理、技术与最佳实践深度解析

Neo4j 的集群技术是其企业级高可用性、可扩展性和容错能力的核心。通过深入分析官方文档,本文将系统阐述其集群管理的核心原理、关键技术、实用技巧和行业最佳实践。 Neo4j 的 Causal Clustering 架构提供了一个强大而灵活的基石,用于构建高可用、可扩展且一致的图数据库服务…...

Axios请求超时重发机制

Axios 超时重新请求实现方案 在 Axios 中实现超时重新请求可以通过以下几种方式&#xff1a; 1. 使用拦截器实现自动重试 import axios from axios;// 创建axios实例 const instance axios.create();// 设置超时时间 instance.defaults.timeout 5000;// 最大重试次数 cons…...

解读《网络安全法》最新修订,把握网络安全新趋势

《网络安全法》自2017年施行以来&#xff0c;在维护网络空间安全方面发挥了重要作用。但随着网络环境的日益复杂&#xff0c;网络攻击、数据泄露等事件频发&#xff0c;现行法律已难以完全适应新的风险挑战。 2025年3月28日&#xff0c;国家网信办会同相关部门起草了《网络安全…...

Caliper 配置文件解析:fisco-bcos.json

config.yaml 文件 config.yaml 是 Caliper 的主配置文件,通常包含以下内容: test:name: fisco-bcos-test # 测试名称description: Performance test of FISCO-BCOS # 测试描述workers:type: local # 工作进程类型number: 5 # 工作进程数量monitor:type: - docker- pro…...

在 Spring Boot 中使用 JSP

jsp&#xff1f; 好多年没用了。重新整一下 还费了点时间&#xff0c;记录一下。 项目结构&#xff1a; pom: <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0" xmlns:xsi"http://ww…...

Unity中的transform.up

2025年6月8日&#xff0c;周日下午 在Unity中&#xff0c;transform.up是Transform组件的一个属性&#xff0c;表示游戏对象在世界空间中的“上”方向&#xff08;Y轴正方向&#xff09;&#xff0c;且会随对象旋转动态变化。以下是关键点解析&#xff1a; 基本定义 transfor…...