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

【机器学习】——卷积与循环的交响曲:神经网络模型在现代科技中的协奏

🎼个人主页:【Y小夜】

😎作者简介:一位双非学校的大二学生,编程爱好者,

专注于基础和实战分享,欢迎私信咨询!

🎆入门专栏:🎇【MySQL,Java基础,Rust】

🎈热门专栏:🎊【Python,Javaweb,Vue框架】

感谢您的点赞、关注、评论、收藏、是对我最大的认可和支持!❤️

学习推荐:

        人工智能是一个涉及数学、计算机科学、数据科学、机器学习、神经网络等多个领域的交叉学科,其学习曲线相对陡峭,对初学者来说可能会有一定的挑战性。幸运的是,随着互联网教育资源的丰富,现在有大量优秀的在线平台和网站提供了丰富的人工智能学习材料,包括视频教程、互动课程、实战项目等,这些资源无疑为学习者打开了一扇通往人工智能世界的大门。

        前些天发现了一个巨牛的人工智能学习网站:前言 – 人工智能教程通俗易懂,风趣幽默,忍不住分享一下给大家。

目录

🎯本文概述

🎯认识relu和tanh激活函数

💻可视化出relu和tanh函数,记住这两个函数的输出值范围

🎈代码解析

🎈运行结果

🎯掌握神经网络中的参数调节

💻创建多层感知机分类器模型

🎈代码解析

💻模型参数调节

🎈分别调整隐藏层节点数和层数并进行可视化,观察模型的变化,并输出模型评分

🎈调整激活函数为tanh函数并进行可视化,观察模型变化,并输出模型评分

🎈调整模型复杂度 调整alpha参数的值并进行可视化,观察模型变化,并输出模型评分


🎯本文概述

(一)理解神经网络算法的基本原理

(二)能够使用sklearn库进行神经网络模型的训练和预测

(三)理解激活函数的作用

(四)理解并学会调整hidden_layer_sizes、alpha、activation等参数

🎯认识relu和tanh激活函数

💻可视化出relu和tanh函数,记住这两个函数的输出值范围

🎈代码解析

import numpy as np
import matplotlib .pyplot as plt
line=np.linspace(-2,2,100)
plt.plot(line,np.maximum(line,0),label='relu',linestyle="-.")
plt.plot(line,np.tanh(line),label='tanh',linestyle="--")
plt.legend(loc='best')
plt.xlabel('x')
plt.ylabel('tanh(x) and relu(x)')
plt.show()

        这段代码使用numpy和matplotlib库绘制了ReLU和tanh函数的图像。首先生成了一个从-2到2的等差数列line,然后分别计算了ReLU和tanh函数在line上的值,并使用plt.plot()函数将它们绘制在同一张图上。最后添加了图例、坐标轴标签和标题,并使用plt.show()函数显示图像。

🎈运行结果

🎯掌握神经网络中的参数调节

💻创建多层感知机分类器模型

        利用skearn载入鸢尾花数据集,并进行训练集和测试集的划分,创建一个多层感知机MLPClassifier分类器,查看并了解该模型的各个参数,尤其是hidden_layer_sizes、alpha、activation、solver参数的作用。并对该模型进行可视化。

🎈代码解析

from sklearn.neural_network import MLPClassifier
import pandas as pd
from sklearn.datasets import load_iris
from sklearn.model_selection import train_test_split
iris=load_iris()
x=iris.data[:,:2]
y=iris.target
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=42)
mlp=MLPClassifier(solver='lbfgs')
mlp.fit(x_train,y_train)

        这段代码使用sklearn库中的MLPClassifier类实现了一个多层感知机分类器,用于对鸢尾花数据集进行分类。首先导入了MLPClassifier、pandas和load_iris等模块,然后加载了鸢尾花数据集,并从中提取出前两个特征作为输入x和目标y。接着将数据集划分为训练集和测试集,并创建了一个MLPClassifier对象mlp,指定了求解器为'lbfgs'。最后使用fit()方法对训练集进行拟合。


#导入画图工具
import numpy as np
import  matplotlib.pyplot  as  plt
from matplotlib.colors import ListedColormap
#以下绘图代码不要求读者掌握,暂不详细注释
cmap_light =ListedColormap(['#FFAFAA','#AAFFDA',  '#FAAAFF'])
cmap_bold =ListedColormap(['#FF0OAA','#00FFOF',  '#OFAOFF'])
x_min,x_max =x_train[:,0].min()-1,x_train[:,0].max()+1
y_min,y_max =x_train[:,1].min()-1,x_train[:,1].max()+1
xx,yy      =np.meshgrid(np.arange(x_min,x_max,.02),
np.arange(y_min,y_max,  .02))
Z=mlp.predict(np.c_[xx.ravel(),yy.ravel()])
Z =Z.reshape(xx.shape)
plt.figure()
plt.pcolormesh(xx,yy,Z,cmap=cmap_light)
#将数据特征用散点图表示出来
plt.scatter(x[:, 0],x[:,1], c=y,edgecolor='k',s=60)plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
#设定图题
plt.title("MLPClassifier:solver=lbfgs")
#显示图形
plt.show()

        这段代码是用于绘制一个多层感知机(MLP)分类器的决策边界。首先导入了绘图所需的库,然后定义了两种颜色映射。接着计算数据的最小值和最大值,生成网格点,并使用MLP分类器对网格点进行预测。最后,使用散点图表示数据特征,并显示图形。

🎈运行结果

💻模型参数调节

🎈分别调整隐藏层节点数和层数并进行可视化,观察模型的变化,并输出模型评分

#隐藏层节点数为20个
mlp_20=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[20])
mlp_20.fit(x_train,y_train)
Z1=mlp_20.predict(np.c_[xx.ravel(),yy.ravel()])
Z1=Z1.reshape(xx.shape)
plt.figure()
plt.pcolormesh(xx,yy,Z1,cmap=cmap_light)
#使用散点图画出x
plt.scatter(x[:,0],x[:,1],c=y,edgecolor='k',s=60)
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
#设置图题
plt.title("MLPClassifier:nodes=10")
#显示图形
plt.show()
print('MLPClassifier:nodes=20   得分: {:.2f}8'.format(mlp_20.score(x_train,y_train)*100))


#两层,隐藏层节点数为20个mlp_2L=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[20,20])
mlp_2L.fit(x_train,y_train)
Z1=mlp_2L.predict(np.c_[xx.ravel(),yy.ravel()])
Z1 =Z1.reshape(xx.shape)
plt.figure()
plt.pcolormesh(xx,yy,Z1,cmap=cmap_light)
#用散点图画出x
plt.scatter(x[:,0],x[:,1],c=y,edgecolor='k',s=60)
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
#设定图题
plt.title("MLPClassifier:2layers")
#显示图形
plt.show()
print('MLPClassifier:2layers   得分: {:.2f}%'.format(mlp_2L.score(x_train,y_train)*100))

🎈调整激活函数为tanh函数并进行可视化,观察模型变化,并输出模型评分

#设置激活函数为tanh
mlp_tanh=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[20,20], activation= 'tanh')
mlp_tanh.fit(x_train,y_train)
#重新画图
Z2=mlp_tanh.predict(np.c_[xx.ravel(),yy.ravel()])
Z2 =Z2.reshape(xx.shape)
plt.figure()
plt.pcolormesh(xx,yy,Z2,cmap=cmap_light)
#散点图画出x
plt.scatter(x[:, 0],x[:,1],c=y,edgecolor='k', s=60)
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
#设置图题
plt.title("MLPClassifier:2layers with tanh")
#显示图形
plt.show()
print('MLPClassifier:2layers with tanh得分:{:.2f}%'.format(mlp_tanh.score(x_train,y_train)*100))

🎈调整模型复杂度 调整alpha参数的值并进行可视化,观察模型变化,并输出模型评分

#修改模型的alpha 参数
mlp_alpha=MLPClassifier(solver='lbfgs',hidden_layer_sizes=[20,20], activation='tanh',alpha=1)
mlp_alpha.fit(x_train,y_train)
#重新绘制图形
Z3=mlp_alpha.predict(np.c_[xx.ravel(),yy.ravel()])
Z3=Z3.reshape(xx.shape)
plt.figure()
plt.pcolormesh(xx,yy,Z3,cmap=cmap_light)
#散点图画出x
plt.scatter(x[:,0],x[:,1],c=y,edgecolor='k',s=60)
plt.xlim(xx.min(),xx.max())
plt.ylim(yy.min(),yy.max())
#设定图题
plt.title("MLPClassifier:alpha=1")
#显示图形
plt.show()
print('MLPClassifier:alpha=1  得分:{:.2f}%'.format(mlp_alpha.score(x_train,y_train)*100))

相关文章:

【机器学习】——卷积与循环的交响曲:神经网络模型在现代科技中的协奏

🎼个人主页:【Y小夜】 😎作者简介:一位双非学校的大二学生,编程爱好者, 专注于基础和实战分享,欢迎私信咨询! 🎆入门专栏:🎇【MySQL&#xff0…...

android studio引用so库

在工程中编译好的so库文件将在原始编译工程对应目录下:build/intermediates/cxx/Debug/xxxxxx/obj/ 其目录结构如上所示,包含生成的四个版本,每个文件夹下均包含c/c源码编译成的Android版本的libnavi.so库和提供应用接口的libnavi-lib.so库。…...

2024年信号处理与神经网络应用(SPNNA 2024)

会议官网:www.spnna.org 会议时间:2024年12月13-15日 会议地点:中国武汉...

wxWidgets-ImageView

wxWidgets实现图片浏览、放大缩小、另存为新的图片格式等 #include "wx/wxprec.h"#ifndef WX_PRECOMP#include "wx/wx.h" #endif#include "wx/filename.h" #include "wx/zstream.h"#include "imageviewctrl.h"class MyFrame…...

第1章-JVM和Java体系架构

虚拟机 虚拟机概念 所谓虚拟机(Virtual Machine),就是一台虚拟的计算机。它是一款软件,用来执行一系列虚拟计算机指令。大体上,虚拟机可以分为系统虚拟机和程序虚拟机。 大名鼎鼎的Virtual Box,VMware就属…...

windows 服务器角色

windows 服务器角色 Active Directory Rights Management Services Active Directory RightsManagement Services (AD RS)帮助保护信息,防止未授权使用。AD RMS 将建立用户标识,并为授权用户提供受保护信息的许可证。 ServicesActive Directory 联合身…...

[OpenHarmony5.0][Docker][环境]OpenHarmony5.0 Docker编译环境镜像下载以及使用方式

T. 已测试目录 主机类型主机版本Docker镜像版本结果WSL2Ubuntu22.04Ubuntu20.04PASSWSL2Ubuntu22.04Ubuntu18.04PASS R. 软硬件要求: 编译硬件需求:做多系统测试,磁盘500GB起步(固态)(机械会卡死),内存3…...

C#中判断两个 List<T> 的内容是否相等

ET实现游戏中邮件系统逻辑思路(服务端)_游戏邮件系统设计-CSDN博客 场景:今天遇到一个BUG,在服务器重启的时候(体验服),玩家之前接收的邮件又重新接收了一次,但是两封邮件的ID是不同…...

Linux环境下配置neo4j图数据库

1.下载安装包 openjdk-11.0.1_linux-x64_bin.tar.gz neo4j-community-4.2.19-unix.tar.gz 2.之前配置好的配置文件 neo4j.conf 3.安装 3.1-jdk11的安装(jdk1.8不够用) 解压缩 tar -zxvf openjdk-11.0.1_linux-x64_bin.tar.gz修改系统环境变量 打开pro…...

Windows 11 搭建 Docker 桌面版详细教程

在当今的软件开发与部署领域,Docker 已成为一项极为重要的容器化技术。它能够让开发者轻松地打包应用及其依赖项,实现跨环境的一致性运行,大大提高了开发效率与部署的便捷性。本教程将详细介绍在 Windows 11 操作系统上搭建 Docker 桌面版的具…...

Pytest-Bdd-Playwright 系列教程(13):钩子(hooks)

Pytest-Bdd-Playwright 系列教程(13):钩子(hooks) 前言一、什么是钩子?二、Pytest-Bdd 提供的钩子一览三、钩子用法详解1. pytest_bdd_before_scenario2. pytest_bdd_after_scenario3. pytest_bdd_before_s…...

dns 服务器简单介绍

dns 服务器分类: 根域名服务器顶级域名服务器权威域名服务器本地域名服务器 dns 的查询过程 国内优秀公共域名 腾讯:DNSPod-免费智能DNS解析服务商-电信_网通_教育网,智能DNS-烟台帝思普网络科技有限公司 119.29.29.29 和 182.254.118.118 阿里&#xf…...

Neo4j图形数据库-Cypher中常用指令

一、创建与修改 1.1 create 创建图数据库中的节点、关系等元素: CREATE (:Person {name: "Alice", age: 30}) CREATE (p1:Person {name: "Bob"})-[r:KNOWS]->(p2:Person {name: "Charlie"})批量创建元素 CREATE (n1:Node),(n2…...

linux安全管理-防火墙配置

1. 开启系统防火墙 1、检查内容 检查操作系统是否开启防火墙; 2、配置要求 操作系统开启防火墙; 3、配置方法 systemctl status firewalld ##查看系统防火墙运行状态 systemctl start firewalld ##启动防火墙 systemctl restart firewalld ##重启防火墙…...

什么是BIOS

BIOS(Basic Input/Output System,基本输入输出系统)是计算机启动过程中的一个关键组件,主要负责硬件的初始化和系统的引导。以下是关于 BIOS 的一些详细信息: 1. 基本功能 硬件初始化:当计算机启动时&…...

c++视频图像处理

打开视频或摄像头 打开指定视频 /*VideoCapture(const String &filename, apiPreference);filename:读取的视频或者图像序列的名称apiPreference:读取数据时设置的属性*/ VideoCapture video; //定义一个空的视频对象 video.open("H:/BaiduNetdiskDownlo…...

音视频入门基础:MPEG2-TS专题(8)——TS Header中的适配域

注:本文有部分内容引用了维基百科:https://zh.wikipedia.org/wiki/MPEG2-TS 一、引言 当TS Header中的adaptation_field_control属性的值为10或11 时,TS Header包含adaptation field(适配域): 根据《T-RE…...

基于stm32单片机的教室节能系统设计

功能描述 0. STM32F103C8T6单片机为控制核心 1. OLED液晶显示当前年 月 日 时 分 秒 星期 2. 按键可以设置定时时间 3. 按键可以设置用电开关的开启和关闭时间,实现设备的节能 4. 通过红外遥控可以打开关闭空调设备(通过继电器开关闭合模拟&#x…...

mini主机通过内网穿透做成服务器

文章目录 简介1.ubuntu 的ssh server 安装2.ubuntu 的docker 安装3.ubuntu的curl的安装4.ubuntu的frp客户端安装5.ubuntu的docker compose安装6.声明 简介 主要目的 本地设备做成服务器,实现ssh远程登录以及内网穿透设备总成本1千多元(其实部分设备可以…...

智能桥梁安全运行监测系统守护桥梁安全卫士

一、方案背景 桥梁作为交通基础设施中不可或缺的重要组成部分,其安全稳定的运行直接关联到广大人民群众的生命财产安全以及整个社会的稳定与和谐。桥梁不仅是连接两地的通道,更是经济发展和社会进步的重要纽带。为了确保桥梁的安全运行,桥梁安…...

Selenium和Pyppeteer有什么区别?

Selenium和Pyppeteer都是自动化测试工具,它们可以模拟用户在浏览器中的操作,但它们之间存在一些关键的区别: Selenium 跨浏览器支持:Selenium支持多种浏览器,包括Chrome、Firefox、Internet Explorer等,而…...

82从零开始学Java之异常处理机制简介

作者:孙玉昌,昵称【一一哥】,另外【壹壹哥】也是我哦 CSDN博客专家、万粉博主、阿里云专家博主、掘金优质作者 前言 大家可以想一个问题,有没有谁能够做到开发项目时一个错误都不发生?如果谁能够做到这一点,那他可能真的是“天才”!但实际上,任何人都不可能在项目开发…...

Git上传本地项目到远程仓库(gitee/github)

目录 序言一、创建git本地版本库二、连接远程仓库(以gitee为例)三、将项目提交到git(本地)版本库1.由工作区添加到暂存区2.由暂存区添加到版本库 四、将代码由本地仓库上传到 gitee远程仓库1.获取远程库与本地同步2.把当前分支 ma…...

华为仓颉编程环境搭建

1、仓颉介绍 摘自华为官方:仓颉编程语言作为一款面向全场景应用开发的现代编程语言,通过现代语言特性的集成、全方位的编译优化和运行时实现、以及开箱即用的 IDE 工具链支持,为开发者打造友好开发体验和卓越程序性能。 其具体特性表现为&am…...

UE5 Line Trace By Channel(通道线条追踪)节点

在 Unreal Engine 5 (UE5) 中,Line Trace By Channel 是一个常用于进行物理射线检测(raycasting)的节点。它会沿着一条从起点到终点的直线发射一条射线,并检测射线与世界中任何物体的碰撞。这个节点广泛应用于枪械射击、检测物体、…...

DroneCAN 最新开发进展,Andrew在Ardupilot开发者大会2024的演讲

本文是Andrew演讲的中文翻译,你可以直接观看视频了解演讲的全部内容,此演讲视频的中文版本已经发布在Ardupilot社区的Blog板块,你可以在 Arudpilot官网(https://ardupilot.org) 获取该视频: 你也可以直接通过Bilibili链…...

UDP客户端服务器通信

在这篇博客中,我们将探索 UDP(用户数据报协议) 通信,简要地说,UDP 是一种无连接、快速但不可靠的通信协议,适用于需要快速数据传输但对丢包容忍的场景,比如视频流和在线游戏。就像《我是如此相信…...

适合中小型公司的自动化测试的测试框架,OpenSourceTest

适合中小型公司的自动化测试的测试框架,OpenSourceTest 文档地址: http://docs.opensourcetest.cn/代码仓库: https://github.com/chineseluo/opensourcetest安装方式: pip3 install opensourcetest -i https://pypi.tuna.tsin…...

实现跨语言通信:Rust 和 Thrift 的最佳实践

前言 在分布式系统中,服务之间高效且安全的通信至关重要。Apache Thrift 是一个被广泛应用的跨语言 RPC(远程过程调用)框架,它支持多种编程语言,包括 Rust。Rust 以其卓越的性能和内存安全保障,成为越来越…...

js判断空对象

1. 使用 Object.keys() 方法 Object.keys(obj) 方法返回一个包含对象可枚举属性名称的数组。如果返回的数组长度为 0,表示对象为空。 const isEmpty (obj) > Object.keys(obj).length 0;// 示例 const emptyObject {}; const nonEmptyObject { key: value …...

个人是否做众筹网站/seo站长工具推广平台

一、SPS 相关概念: SPS即 “Sequence Paramater Set”,又称作序列参数集。 SPS中保存了一组编码视频序列(Coded video sequence)的全局参数。所谓的编码视频序列即原始视频的一帧一帧的像素数据经过编码之后的结构组成的序列。而每一帧的编码后数据所依赖…...

广告设计有哪些/苏州网站优化排名推广

目录 一.什么是红黑树? 二. 红黑树的基本概念 三.红黑树的插入 红黑树节点的构造 红黑树的插入 1.parent是黑色 2.parent是红色 四.右单旋 五. 左单旋 一.什么是红黑树? 在学红黑树之前,我们需要回顾二叉树的知识,二叉树…...

做电影采集网站用什么vps/免费ip地址网站

2019独角兽企业重金招聘Python工程师标准>>> 1.打开eclipse,创建一个java project 2.创建lib文件夹,放入mybatis jar包和ojdbc jar包,并添加到buildpath 3.创建generatorConfig.xml文件,位置如上图中所示,内…...

怎么用群晖nas做网站/什么网站推广比较好

实现一个函数,将一个字符串中的所有空格替换为"%20",例如输入字符串"How beautiful you are!",输出结果应为"How%20beautiful%20you%20are!"。首先,如果另开辟一块空间并且足够将全部空格都替换成"%20&qu…...

大学 英文网站建设/湖南关键词优化快速

在页面上显示SWF是要等到目标完全被加载完才会渲染出来。当加载的SWF文件比较大时,页面会处于空白状态,用户体验不好。较好的做法是做一个文件大小较小的loading动画来加载目标SWF,但对于单独的项目来说并不是最好的做法,因为这样…...

杭州如何做百度的网站/网络营销有哪些形式

下面是 SuperTextView 简单使用,以及常用的方法。 首先看一下 SuperTextView 效果图: 1. 添加依赖 在项目的 gradle 中加入下面内容: allprojects {repositories {google()jcenter()maven { url https://jitpack.io }} } 在 app 下的 gra…...