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

news2024/11/26 8:02:13

🎼个人主页:【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.coloradmin.cn/o/2247730.html

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

相关文章

php 导出excel 一个单元格 多张图片

public function dumpData(){error_reporting(0); // 禁止错误信息输出ini_set(display_errors, 0); // 不显示错误$limit $this->request->post(limit, 20, intval);$offset $this->request->post(offset, 0, intval);$page floor($offset / $limit) 1 ;$wh…

几天游记啊

绿灯常亮,黄灯闪,就是没有上线状态 一 2024.11.24 青浦圆通信息中心:vsphere client IDC运维专员可能就这项技能稀缺 二 2024.11.25 1 字节服务器外包单位有孚网路 什么互联网交换中心 不了解的人还以为是国家火炬计划呢!实际…

【C++动态规划 子集状态压缩】2002. 两个回文子序列长度的最大乘积|1869

本文涉及知识点 C动态规划 位运算、状态压缩、枚举子集汇总 LeetCode2002. 两个回文子序列长度的最大乘积 给你一个字符串 s ,请你找到 s 中两个 不相交回文子序列 ,使得它们长度的 乘积最大 。两个子序列在原字符串中如果没有任何相同下标的字符&…

记录:从.Net程序的内存转储文件中提取内存数据过程

1.准备材料:xxx.dump转储文件,VS2022 2.提取过程 使用VS打开xxx.dump文件VS中点击 调试托管内存 按钮查找需要导出的变量,注:通过类型查找时基础变量类型跟原类型不一样,如string对应String,bool对应Bool…

Nacos学习文档

目录 1、Nacos是什么2、Nacos名词介绍3、Nacos中的data id是如何组装的?4、Nacos 融合 Spring Cloud,成为注册配置中心4.1、Maven依赖作用4.2、启动配置管理4.2.1、添加依赖4.2.2、在 bootstrap.yml(也支持properties格式) 中添加…

QT简易项目 数据库可视化界面 数据库编程SQLITE QT5.12.3环境 C++实现

案例需求&#xff1a; 完成数据库插入&#xff0c;删除&#xff0c;修改&#xff0c;查看操作。 分为 插入&#xff0c;删除&#xff0c;修改&#xff0c;查看&#xff0c;查询 几个模块。 代码&#xff1a; widget.h #ifndef WIDGET_H #define WIDGET_H#include <QWidget…

【Linux学习】【Ubuntu入门】2-3 make工具和makefile引入

1.使用命令新建三个.c文件vi main.c&#xff0c;vi input.c&#xff0c;vi caclcu.c&#xff0c;两个.h文件vi input.h&#xff0c;vi caclcu.h 2.vi Makefile&#xff1a;新建Makefile文件&#xff0c;输入一下内容 注意&#xff1a;命令列表中每条命令前用TAB键&#xff0c;不…

Gazebo仿真实现无人机+Apriltag码动态跟踪

目录 演示 一、环境 二、配置 创建模型 首先相机创建 添加相机 Apriltag创建 地图添加apriltag码 Apriltag_ros配置 三、代码运行 四、问题 修改相机模型的参数 演示 一、环境 ROSgazebo配置 Px4Mavros Apriltag_ros编译 二、配置 在默认的mavros_posix_sitl.l…

H.265流媒体播放器EasyPlayer.js播放器提示MSE不支持H.265解码可能的原因

随着人工智能和机器学习技术的应用&#xff0c;流媒体播放器将变得更加智能&#xff0c;能够根据用户行为和偏好提供个性化的内容推荐。总体而言&#xff0c;流媒体播放器的未来发展将更加注重技术创新和用户互动&#xff0c;以适应不断变化的市场需求和技术进步。 提示MSE不支…

加菲工具 - 好用免费的在线工具集合

加菲工具 https://orcc.online AI 工具 集合了目前主流的&#xff0c;免费可用的ai工具 文档处理 pdf转word、office与pdf互转等等工具都有链接 图片图标 统计了好用免费的在线工具 编码解码 base64编码解码、url编码解码、md5计算、进制转换等等 其它 还有其他好用的…

【linux学习指南】初识Linux进程信号与使用

文章目录 &#x1f4dd;信号快速认识&#x1f4f6;⽣活⻆度的信号&#x1f4f6; 技术应⽤⻆度的信号&#x1f309; 前台进程&#xff08;键盘&#xff09;&#x1f309;⼀个系统函数 &#x1f4f6;信号概念&#x1f4f6;查看信号 &#x1f320; 信号处理&#x1f309; 忽略此信…

今天你学C++了吗?——C++中的类与对象(第二集)

♥♥♥~~~~~~欢迎光临知星小度博客空间~~~~~~♥♥♥ ♥♥♥零星地变得优秀~也能拼凑出星河~♥♥♥ ♥♥♥我们一起努力成为更好的自己~♥♥♥ ♥♥♥如果这一篇博客对你有帮助~别忘了点赞分享哦~♥♥♥ ♥♥♥如果有什么问题可以评论区留言或者私信我哦~♥♥♥ ✨✨✨✨✨✨ 个…

Anaconda3 2024 jupyter notebook 配置默认文件路径

我的版本如下&#xff1a; 第一步&#xff1a; 打开命令行anaconda prompt &#xff0c; 敲下面命令生成配置文件 jupyter notebook --generate-config 如下图&#xff1a; 修改配置jupyter_notebook_config.py 文件中搜索c.ServerApp.root_dir &#xff08; 对于 Anac…

【抓包专题】burpsuitProxifier小程序抓包

抓包系列文章 burpsuit&Proxifier&小程序抓包 抓包系列文章前言一、工具下载二、获取证书并安装到本地三、抓包测试 前言 抓包是进行渗透的第一步&#xff0c;包都抓不到&#xff0c;渗透就不要谈了&#xff0c;废话少说&#xff0c;开干 一、工具下载 Proxifier安装使…

springboot 异步 @Async 的日常使用及失效场景

文章目录 springboot 异步 Async 的日常使用引言一、Async 使用位置二、Async 使用三、注解 Async 失效的情况&#xff08;1&#xff09;调用同一个类中的异步方法&#xff08;内部调用&#xff09;&#xff08;2&#xff09;未使用 EnableAsync 注解&#xff08;3&#xff09;…

WebGIS技术汇总

WebGIS系统通常都围绕地图进行内容表达&#xff0c;但并不是有地图就一定是WebGIS&#xff0c;所以有必要讨论下基于Web的地图API分类及应用场景。 Web上的Map API主要分类如下几类&#xff1a; Charts&#xff1a;以D3.js&#xff0c;Echarts等为代表。LBS&#xff1a;以高德…

使用Vue3来实现一个倒计时器以及倒计时任务

本内容使用Vue3&#xff0c;以及element-plus辅助开发。 首先展示倒计时器的功能&#xff1a; 手动设置倒计时器的倒计时时间开始倒计时按钮暂停倒计时按钮重新开始倒计时按钮 其次展示倒计时任务管理界面功能&#xff1a; 创建倒计时任务选择任务并进行倒计时删除任务 目录 一…

VMware Workstation 虚拟机运行卡顿解决方案

前言 由于我们网站主力是模拟器多开&#xff0c;VMware虚拟机纯属我个人使用的经验&#xff0c;仅供参考。顺带一提&#xff1a;多开鸭的系统精简掉的是Hyper-V&#xff0c;跟VMware完全没有任何关系&#xff0c;Hyper-V跟雷电这些模拟器会冲突&#xff0c;但是移除之后不会影…

GitLab|应用部署

创建docker-compose.yaml文件 输入docker-compose配置 version: 3.8 services:gitlab:image: gitlab/gitlab-ce:15.11.2-ce.0restart: alwayscontainer_name: gitlab-ceprivileged: truehostname: 192.168.44.235environment:TZ: Asia/ShanghaiGITLAB_OMNIBUS_CONFIG: |exter…

ssm182在线作业管理系统的设计与实现+vue(论文+源码)_kaic

设计题目&#xff1a;在线作业管理系统的设计与实现 摘 要 网络技术和计算机技术发展至今&#xff0c;已经拥有了深厚的理论基础&#xff0c;并在现实中进行了充分运用&#xff0c;尤其是基于计算机运行的软件更是受到各界的关注。加上现在人们已经步入信息时代&#xff0c;所…