[深度学习实战]Matlab-BP神经网络实战——光谱分析(下)

简介: 笔记

四、进行预测


  保存结果后,我们的工作区中出现了net,output,error(残差)

14.png

现在我们就可以通过函数sim来进行预测,把要预测的10组数据的输入拿进来:

Predict_Y=zeros(10,1);                       % 初始化,提高运行速度
for i=1:10 % 有10行
    Predict_Y(i,1)=sim(net,Predict_X(i,:)'); % 这里注意需要转置
end
% 成功得到预测值

在命令行窗口输入以下命令调用查看输出值Y:

disp(Predict_Y)


五、后记


 关于所使用到的Excel、Matlab技巧和神经网络的相关技巧心得


1、关于快速选取Excel文件中的数据

 Ctrl+方向键:如“Ctrl+↑”是快速到达表格的最顶端。

 取消选择需保证当前位置是空单元格,按下快捷键Ctrl+D。

 Ctrl+Shift+方向键:如“Ctrl+Shift+→”是快速选取这一行的内容,“Ctrl+Shift+↓”是选取右下的内容。


2、将临时变量转换为mat文件保存

 我们知道,如果每次都输出X和Y相当浪费时间,因此我们可以用文件形式保存。在工作区手动右键删除掉不需要的变量后将其保存为mat文件:

15.png



文件会默认保存在当前文件夹下,这时我们用load命令就可以直接导入数据


16.png


3、生成的神经网络的w和b在哪里找?

  还是先对数据进行训练17.png


 这里选择rows的原因是,完整的一行代表一组数据,输入和输出在同一行上18.png

数据集一般占比70%或80%

19.png

训练完成后,进入以上界面。其中,Validation Checks代表泛化性。

 需要注意的是,如果在训练过程中MSE(均方误差)不降反增,Validation Checks就自增1;当默认达到6次时,迭代终止。

 Epoch代表完成训练的次数,这里我们可以看到在第8次就完成了训练。

 当Performance和Gradient不再增加时,就代表完成了训练。


20.png

通过“Performance”我们可以看到:在第4次迭代时MSE最小,此时的MSE为0.70971。

 在这个函数中,我们可以看到b和w。

 由于隐藏层的个数是10,b1的个数就是10。

 由于一共有401个输入,那么IW_1的个数就是10*401。


4、如何生成预测值

 第一个方法是之前用过的sim仿真函数。

 第二个方法是使用我们生成的函数,但要注意把第二、三个参数删除(删掉选中部分)。

21.png

 随机生成一组数据验证一下(rand函数生成的值在[0,1]之间,这里只是举个例子):

22.png

 用我们生成的函数也是可以进行预测的。


5、怎么预测多输入多输出问题?

  这里没有很好的数据,所以matlab自带的数据集来做演示:

23.png

在这个数据集中input是14 * 4208,output是3 * 4208。即3个输出,14个输入,一共有4208组;这时完整的一列代表一组数据,所以选择matrixcolumn

24.png

因为工作区已经有我们刚刚生成的net,所以这里生成的是net1。

25.png

我们再随机生成一组数据来预测。由于这里B的列数等于输入向量的个数,因此无需再转置,最后得到的结果如ans所示:

26.png27.png

B=rand(14,5);是5组数据的意思,每组数据14个输入,返回5组3个输出值


6、资源获取(项目相关代码和光谱分析数据表格xlsx)

  项目相关代码和光谱分析数据表格xlsx如有需要,可私信我免费分享。希望这篇博文能帮助到你!

相关文章
|
14天前
|
算法 数据可视化
基于SSA奇异谱分析算法的时间序列趋势线提取matlab仿真
奇异谱分析(SSA)是一种基于奇异值分解(SVD)和轨迹矩阵的非线性、非参数时间序列分析方法,适用于提取趋势、周期性和噪声成分。本项目使用MATLAB 2022a版本实现从强干扰序列中提取趋势线,并通过可视化展示了原时间序列与提取的趋势分量。代码实现了滑动窗口下的奇异值分解和分组重构,适用于非线性和非平稳时间序列分析。此方法在气候变化、金融市场和生物医学信号处理等领域有广泛应用。
|
5天前
|
机器学习/深度学习 传感器 边缘计算
深度学习之精准农业分析
基于深度学习的精准农业分析利用深度学习技术处理和分析农业中的各种数据源,包括遥感影像、气象数据、土壤信息和作物生长情况,从而优化农业生产,实现资源的精确管理和农业产量的提升。
17 6
|
7天前
|
数据采集 网络协议 API
HTTP协议大揭秘!Python requests库实战,让网络请求变得简单高效
【9月更文挑战第13天】在数字化时代,互联网成为信息传输的核心平台,HTTP协议作为基石,定义了客户端与服务器间的数据传输规则。直接处理HTTP请求复杂繁琐,但Python的`requests`库提供了一个简洁强大的接口,简化了这一过程。HTTP协议采用请求与响应模式,无状态且结构化设计,使其能灵活处理各种数据交换。
35 8
|
1天前
|
数据采集 API 开发者
🚀告别网络爬虫小白!urllib与requests联手,Python网络请求实战全攻略
在网络的广阔世界里,Python凭借其简洁的语法和强大的库支持,成为开发网络爬虫的首选语言。本文将通过实战案例,带你探索urllib和requests两大神器的魅力。urllib作为Python内置库,虽API稍显繁琐,但有助于理解HTTP请求本质;requests则简化了请求流程,使开发者更专注于业务逻辑。从基本的网页内容抓取到处理Cookies与Session,我们将逐一剖析,助你从爬虫新手成长为高手。
13 1
|
5天前
|
机器学习/深度学习 数据可视化 搜索推荐
使用Python实现深度学习模型:智能睡眠监测与分析
使用Python实现深度学习模型:智能睡眠监测与分析
24 2
|
6天前
|
机器学习/深度学习 搜索推荐 TensorFlow
使用Python实现深度学习模型:智能饮食建议与营养分析
使用Python实现深度学习模型:智能饮食建议与营养分析
30 3
|
7天前
|
机器学习/深度学习 搜索推荐 算法框架/工具
使用Python实现深度学习模型:智能运动表现分析
使用Python实现深度学习模型:智能运动表现分析
30 1
|
20天前
|
运维 安全 应用服务中间件
自动化运维的利器:Ansible入门与实战网络安全与信息安全:关于网络安全漏洞、加密技术、安全意识等方面的知识分享
【8月更文挑战第30天】在当今快速发展的IT时代,自动化运维已成为提升效率、减少错误的关键。本文将介绍Ansible,一种流行的自动化运维工具,通过简单易懂的语言和实际案例,带领读者从零开始掌握Ansible的使用。我们将一起探索如何利用Ansible简化日常的运维任务,实现快速部署和管理服务器,以及如何处理常见问题。无论你是运维新手还是希望提高工作效率的资深人士,这篇文章都将为你开启自动化运维的新篇章。
|
21天前
|
Java
【实战演练】JAVA网络编程高手养成记:URL与URLConnection的实战技巧,一学就会!
【实战演练】JAVA网络编程高手养成记:URL与URLConnection的实战技巧,一学就会!
29 3
|
22天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于深度学习网络的USB摄像头实时视频采集与水果识别matlab仿真
本项目展示了使用MATLAB 2022a和USB摄像头识别显示器上不同水果图片的算法。通过预览图可见其准确识别效果,完整程序无水印。项目采用GoogleNet(Inception-v1)深度卷积神经网络,利用Inception模块捕捉多尺度特征。代码含详细中文注释及操作视频,便于理解和使用。

热门文章

最新文章