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

🎼个人主页:【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))

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/60735.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

c++(入门)

1. 引用 引用的定义 引用是另一个变量的别名,它在声明时必须被初始化,并且一旦初始化后,它就始终引用那个变量。 引用的语法 引用的声明方式是在变量名前加上&符号。 引用的特点 引用必须在声明时初始化。引用一旦初始化后&#x…

stm32内部高速晶振打开作为主时钟

首先建议你别这么干,因为内部晶振特别容易受温度等外界影响,很容易卡死或堵死程序 我是因为没画外部晶振电路,所以只能开内部晶振来作为时钟 适用于stm32f103系列 把下面的代码换掉源文件里的时钟源配置 /* 开启HSI 即内部晶振时钟 */RCC…

Nginx防御机制

文章目录 1.访问控制1.1基于 IP 的访问限制1.2基于用户认证的访问控制 2.防止 DDoS 攻击2.1连接数限制2.2请求速率限制 3.缓存机制3.1内容缓存 4.安全协议与加密4.1SSL/TLS 加密4.2HTTP/2 支持 5.防 SQL 注入和 XSS 攻击5.1输入验证与过滤 6.防盗链6.1基于 Nginx 的防盗链配置方…

lua除法bug

故事背景,新来了一个数值,要改公式。神奇的一幕出现了,公式算出一个非常大的数。排查是lua有一个除法bug,1除以大数得到一个非常大的数。 function div(a, b)return tonumber(string.format("%.2f", a/b)) end print(1/73003) pri…

代码管理之Gitlab

文章目录 Git基础概述场景本地修改未提交,拉取远程代码修改提交本地,远程已有新提交 GitIDEA引入Git拉取仓库代码最后位置 Git基础 概述 workspace 工作区:本地电脑上看到的目录; repository 本地仓库:就是工作区中隐…

嵌入式系统应用-LVGL的应用-智能时钟 part 3

智能时钟 part 3 6 光强传感器6.1 光敏电阻介绍6.2 电路图介绍 7 ADC模块7.1 ADC模块介绍7.2 adc 转化流程7.3 规则通道和注入通道7.4 DMA 搬运7.5 TIM触发ADC和DMA搬运数据的原理 8 代码8.1 配置头文件8.2 初始化ADC 和DMA8.3 创建线程读取 值8.4 演示效果 由于丢失温湿度传感…

跨平台应用开发框架(1)----Qt(组件篇)

目录 1.Qt 1.Qt 的主要特点 2.Qt的使用场景 3.Qt的版本 2.QtSDK 1.Qt SDK 的组成部分 2.安装 Qt SDK 3.Qt SDK 的优势 3.Qt初识 1.快速上手 widget.cpp mian.cpp widget.h Helloworld.pro 2.对象树 3.坐标系 4.信号和槽 1. 信号和槽的基本概念 2. 信号和槽的…

架构-微服务-服务治理

文章目录 前言一、服务治理介绍1. 什么是服务治理2. 常见的注册中心 二、nacos简介三、nacos实战入门1. 搭建nacos环境2. 将商品微服务注册到nacos3. 将订单微服务注册到nacos 四、实现服务调用的负载均衡1. 什么是负载均衡2. 自定义实现负载均衡3. 基于Ribbon实现负载均衡 五、…

AWS的流日志

文章目录 一、aws如何观察vpc的日志?二、aws观测其vpc的入口日志三、 具体配置3.1、配置你的存储神器 S33.2、建立子网的流日志 一、aws如何观察vpc的日志? 排查问题的时候除了去抓包看具体的端口信息的时候,还可以根据其所在的vpc的子网信息…

万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统

万物皆可Docker,在NAS上一键部署最新苹果MacOS 15系统 哈喽小伙伴们还,我是Stark-C~ 最近苹果Mac mini 2024款在政府补贴的加持下,仅需3500块钱左右就能到手确实挺香的。我看很多评论区的小伙伴跃跃欲试,但是也有不少之前从未体…

函数模板(进阶)

机甲为婚纱,银河为殿堂,爆炸为礼炮,见证了只属于他们的婚礼,樱花树下,再续前缘,鹤望兰无凋零之时,比翼鸟永世长存。 我们这一篇博客紧接我们前面的函数模板(初阶)这一篇博…

全面解析:HTML页面的加载全过程(五)--浏览器渲染之布局Layout

理解一些概念: 盒子模型 页面中的所有元素都被看作一个矩形盒子 内边距(padding)是内容区周围的空间。 边框(border)会在内边距外侧增加一条框线,这条框线可以是实线、虚线或点划线。 外边距(margin),外边距是围绕在盒子可见…

AI 驱动的个性化推荐系统设计

文章目录 摘要引言推荐系统的核心原理推荐系统的类型个性化推荐中的挑战 基于协同过滤的推荐系统设计设计流程系统架构设计 示例代码模块1:数据准备模块2:相似度计算模块3:推荐生成模块4:整体调用与展示 QA 环节总结参考资料 摘要…

基于springboot + vue-element-plus-admin开发的MES系统源码,制造执法系统MES源码;支持app,小程序,H5,后台

MES系统(Manufacturing Execution System,制造执行系统)的生产计划管理功能是其核心功能之一,旨在将企业的生产计划转化为实际的生产操作,并通过实时监控和调整来确保生产活动的顺利进行。 MES系统技术栈:…

力扣第 63 题不同路径 II

题目描述 一个机器人位于一个 m n m \times n mn 网格的左上角(起始点在下图中标记为 “Start” )。 机器人每次只能向下或向右移动一步。机器人试图到达网格的右下角(标记为 “Finish”)。 现在考虑网格中有障碍物。网格中的…

Java后端如何进行文件上传和下载 —— 本地版

简介: 本文详细介绍了在Java后端进行文件上传和下载的实现方法,包括文件上传保存到本地的完整流程、文件下载的代码实现,以及如何处理文件预览、下载大小限制和运行失败的问题,并提供了完整的代码示例。 大体思路 1、文件上传 …

深入理解结构化学习:从结构化感知器到条件随机场

摘要 结构化学习是一类能够处理复杂输出空间问题的机器学习方法,被广泛应用于自然语言处理、图像分析等领域。本文将从三个经典模型——结构化感知器、隐马尔可夫模型 (HMM) 和条件随机场 (CRF) 入手,详细解析其理论基础、算法实现及应用案例&#xff0c…

C#基础题总结

16.一张单据上有一个5位数的号码为6**42,其中百位数和千位数已模糊不清,但知道该数能被 57 和 67 除尽。设计一个算法,找出该单据所有可能的号码。 17.编程序求2~10000以内的完全数。一个数的因子(除了这个数本身&…

IP Transit國外頻寬使用最高優先權,國內直接與骨幹互連

鼎峰新匯IP Transit服務具國外頻寬使用最高優先權,國內直接與骨幹互連,提供多路連外路由,連線穩定度極高。 鼎峰新匯與國內外各大ISP業者合作,提供最優質的網路品質。 節省成本:用戶不需自行與各ISP申請網路連結&…

24.10.15学习记录

TIME-TFT模型 Temporal Fusion Transformers (TFT) 是一种先进的深度学习模型,专门设计用于时间序列预测任务。它结合了多种机制来处理时间序列数据中的复杂关系,包括静态协变量和时变变量的输入,以及对时间动态的可解释性理解。 TFT 模型的核…