基于长短时记忆神经网络的空气质量数据分析与预测的设计与实现

研究内容

本文旨在研究和解决气象参数和气象aqi指数实时预测准确度较低和速度较慢的问题,并结合所有空气质量监测站点以及气象监测站点的实际情况,将长短时记忆神经网络应用于气象基本指数的预测中,为日后的政府决策和人类出行活动提供一定的 参考依据,与气象数据参考平台 (1) 跟随研究方案使用python等编程语言完成实验的过程 (2) 使用echart.js对数据进行可视化 (3)  对气象维度像进行相关性分析。

采取的研究方法

(1) 首先对数据进行清洗整理并且可视化,寻找气象参数和pm2.5和aqi方面的作用 (2) 采用无监督学习聚类算法对气象数据进行聚类分类型进行AQI和PM2.5预测分析 (3) 使用ARIMA,长短时记忆神经网络对SO2 NO2 NO NOX PM10 PM1 CO 浓度的总体变化规律和趋势进行分析 (4) 使用Pearson相关系数, Spearman相关系数,Kendall's tau-b等级相关 对气象因素和pm2.5的浓度进行相关性分析

技术路线

(1) 对市内SO2 NO2 NO NOX PM10 PM1 CO 浓度的总体变化规律和趋势进行分析,通过年、月、日等时间尺度找寻 PM2.5浓度和AQI指数的分布特征;

(2) 将 PM2.5 浓度与气象因子(SO2 NO2 NO NOX PM10 PM1 CO)之间的相关性进行分析,包含温度、气压、湿度等气象参数,并结合兰州市具体地形和地理位置,分析风速及风向对 PM2.5 浓度扩散 的影响;

(3) 研究并分析预测站点与周围站点 PM2.5浓度和的时空关联性。如果两个空气质量 监测站点距离很近,则假设这两个站点所处的大气环境大致类似,所以这两个站点 PM2.5 浓 度变化规律也经常一致,因此研究并分析预测站点与该站点的周围站点 PM2.5 浓度变化 的时空关联性,并将此时空关联性应用于预测模型当中,提高预测精度;

(4) 消除或减少数据集类别不平衡对预测模型性能的影响。本文所使用实际气象数据和空气污染物数据,存在有显著的类别不平衡,对预测模型的性能有一定负面影响,本文从预测方法的层面出发,解决采样带来的缺陷,提高预测精度;

(5) 使用无监督算法对空气质量数据集进行聚类,对不同的簇分别建立预测模型,使得模型对同一簇内的数据更有针对性,从而提高预测精度;

实现

pm_data['数据'].plot(figsize=(30,15))

# 设置坐标字体大小
plt.tick_params(labelsize=30)
# 生成刻度线网格
plt.grid()

 堆积图

pm_data.plot.area(stacked=True)
pm_data.plot.area(stacked=False)

核密度估计图(KDE图)

pm_data['数据'].plot(kind='kde')

sns.heatmap(pm_data['2020'].resample('M').mean().T)

每个月pm2.5分布箱型图

months = pd.concat([DataFrame(x[1].values) for x in groups_month], axis=1)
months = DataFrame(months)
months.columns = range(1,13)
months.boxplot(figsize=(20,15))
plt.title('每个月pm2.5分布箱型图') 

每个月pm2.5分布小提琴图

每个月pm2.5分布热力图

pm2.5分布滞后1期散点图

pm2.5分布滞后3期散点图

pm2.5分布自相关图

对特征进行独热编码

读热向量编码用来将定类数据表示为0-1的二进制,便于输入模型中。

比如,计算机并不认识颜色这一列的“红”、“黄”、“绿”三个分类,所以我们用“是不是红色”、“是不是黄色”、“是不是绿色”三列来分开表示“颜色”这一列特征。

# 使用pandas的get_dummies函数对df2的指定列进行独热向量编码操作 1 0 10 
dummy_df = pd.get_dummies(pm_data2, columns=columns_to_encoding)

线性回归算法

对于这个数据集温数据集,是典型的多元线性回归,有72个自变量,其中包含很多独热向量编码处理后的分类变量(是否周末、是否周六、是否月初,等等)。

从图中可以看出,拟合出的结果是一簇一簇的点,且每一年的同一段时间都是空的或者密集的,模型明显欠拟合了,究其原因,是因为我们输入的72个特征中包含了太多的独热向量编码,其中一些特征的系数较大,就会在每一年同一段时间,也就是某些特征相同的时候取得相同的值,因此就会产生一簇一簇的点。

多项式回归

三次多项式拟合的点与原始数据完全重合,出现了过拟合。在机器学习中,我们希望模型能大而化之的学习到数据的普遍一般规律,而不是对每一个点死记硬背。因此,在线性回归中,二次多项式回归是效果最好的。

随机森林算法

特征重要性分析

多层神经网络


神经网络对输入特征的幅度很敏感,我们首先需要将输入特征归一化。

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

burp(6)暴力破解与验证码识别绕过

声明! 学习视频来自B站up主 **泷羽sec** 有兴趣的师傅可以关注一下,如涉及侵权马上删除文章,笔记只是方便各位师傅的学习和探讨,文章所提到的网站以及内容,只做学习交流,其他均与本人以及泷羽sec团队无关&a…

Plugin - 插件开发05_Solon中的插件实现机制

文章目录 Pre概述插件插件扩展机制(Spi)插件扩展机制概述插件扩展机制的优势 插件扩展机制实现步骤第一步:定制插件实现类示例代码:插件实现类 第二步:通过插件配置文件声明插件示例插件配置文件:META-INF/…

现代密码学|Rabin密码体制及其数学基础 | 椭圆曲线密码体制及其运算 | DH密钥交换及中间人攻击

文章目录 参考Rabin密码体制及其数学基础中国剩余定理二次剩余Rabin密码体制实例 椭圆曲线密码体制及其运算原理运算规则加密解密实例 DH密钥交换及中间人攻击中间人攻击 参考 现代密码学|Rabin密码体制及其数学基础 现代密码学|椭圆曲线密码体制及其运…

分布式cap

P(分区安全)都能保证,就是在C(强一致)和A(性能)之间做取舍。 (即立马做主从同步,还是先返回写入结果等会再做主从同步。类似的还有,缓存和db之间的同步。&am…

【TCP 网络通信(发送端 + 接收端)实例 —— Python】

TCP 网络通信(发送端 接收端)实例 —— Python 1. 引言2. 创建 TCP 服务器(接收端)2.1 代码示例:TCP 服务器2.2 代码解释: 3. 创建 TCP 客户端(发送端)3.1 代码示例:TCP…

借助 CC-Link IE FB 转 Profinet 网关实现西门子 PLC 接入三菱 PLC 系统的解决策略

我们公司自动化生产线上,原有的控制系统采用三菱 PLC 通过 CC-Link IEFB 网络进行通信和控制。后来随着企业生产规模的扩大和对自动化系统集成度要求的提高,需要将部分设备与新引入的西门子 PLC 控制系统相连接,而西门子 PLC 使用 ProfiNet 协…

即时通信系统项目总览

聊天室服务端项目总体介绍 本项目是一个全栈的即时通信系统, 前端使用QT实现聊天客户端, 后端采⽤微服务框架设计, 由网关子服务统一接收客户端的请求, 再分发到不同的子服务上处理并将结果返回给网关, 网关再将响应转发给客户端 拆分的微服务包含: 网关服务器&…

Redis的五种数据类型(Set、Zset)

目录 1. Set 集合1.1 Set介绍1.2 常见命令1.2.1 SADD命令1.2.2 SMEMBERS命令1.2.3 SISMEMBER命令1.2.4 SCARD命令1.2.5 SPOP命令1.2.6 SMOVE命令1.2.7 SREM命令 1.3 集合间操作1.3.1 SINTER命令1.3.2 SINTERSTORE命令1.3.3 SUNION命令1.3.4 SUNIONSTORE命令1.3.5 SDIFF命令1.3.…

负载均衡OJ项目中遇到的问题

1、续行符问题 关于换行符 ,代码在使用了换行符后无法编译文件,也没有爆出任何错误,更没有按照我们的代码打印出如下类似内容 :[ERROR][compiler.hpp][66][1732635247]编译失败,没有形成可执行程序 随机排查才发现。 代码中的 \ …

力扣面试150 环形子数组的最大和 循环数组 逆向思维

Problem: 918. 环形子数组的最大和 👨‍🏫 参考题解 ⏰ 时间复杂度: O ( n ) O(n) O(n) 🌎 空间复杂度: O ( 1 ) O(1) O(1) class Solution {public int maxSubarraySumCircular(int[] nums) {int maxSum Integer.M…

Java 享元模式:打造高扩展游戏角色模型,优化 MMO 游戏开发

🧑 博主简介:CSDN博客专家,历代文学网(PC端可以访问:https://literature.sinhy.com/#/literature?__c1000,移动端可微信小程序搜索“历代文学”)总架构师,15年工作经验,…

【精选】AI Coding 新范式:Windsurf、Cursor、Coze齐上阵

2AGI.NET | 探索 AI 无限潜力,2AGI 为您带来最前沿资讯。 随着人工智能技术的飞速发展,AI Coding领域迎来了前所未有的变革。Codeium的Windsurf、Cursor的agent模式更新、Copilot的新版本以及Coze的AI应用能力,都在推动着编程领域的创新。本期…

我的世界网易版安装Continuum光影

先去官网下载这个光影压缩包,下载完不要解压(网慢的开加速器) Downloads - Continuum Graphics 进去后选最新的版本号下载就行: 下载好后,先不管他,通过网易游戏启动器打开我的世界 觉得自己电脑性能将将…

使用uniapp开发小程序场景:在百度地图上调用接口返回的设备相关信息并展示

首先在百度地图开发者平台注册微信小程序开发密钥下载百度地图SDK-bmap-wx.min.js,下载地址在项目入口index.html页面进行引入页面中进行调用&#xff0c;代码示例如下<map id"map" longitude"108.95" latitude"34.34" scale"3" :m…

Push an existing folder和Push an existing Git repository的区别

Push an existing folder 和 Push an existing Git repository 是在使用 Git 服务&#xff08;如 GitHub、GitLab、Bitbucket 等&#xff09;时两个常见的操作选项。它们的区别主要体现在项目的初始化和版本控制状态上&#xff1a; 1. Push an existing folder 适用场景&#…

机器学习详解(2):线性回归之理论学习

文章目录 1 监督学习2 线性回归2.1 简单/多元线性回归2.2 最佳拟合线2.3 成本函数和梯度下降2.4 线性回归的假设2.5 线性回归的评估指标函数 3 总结 机器学习是人工智能的一个分支&#xff0c;主要致力于开发能够从数据中学习并进行预测的算法和统计模型。线性回归是机器学习的…

ASP.NET Core8.0学习笔记(二十五)——EF Core Include导航数据加载之预加载与过滤

一、导航属性数据加载 1.在EF Core中可以使用导航属性来加载相关实体。 2.加载实体的三种方式&#xff1a; (1)预先加载&#xff1a;直接在查询主体时就把对应的依赖实体查出来&#xff08;作为初始查询的一部分&#xff09; (2)显式加载&#xff1a;使用代码指示稍后显式的从…

QT实战--带行号的支持高亮的编辑器实现(1)

本文主要介绍了基于QPlainTextEdit实现的&#xff0c;带有行号的,支持高亮的编辑器实现&#xff0c;话不多说&#xff0c;先上效果图&#xff1a; 1.行号头文件&#xff1a;linenumberarea.h #ifndef LINENUMBERAREA_H #define LINENUMBERAREA_H#include <QWidget> #inc…

基于Matlab的卷积神经网络(CNN)苹果分级检测系统

本研究提出了一种基于卷积神经网络&#xff08;CNN&#xff09;的自动化苹果分级系统&#xff0c;该系统根据苹果的视觉特征进行分类。系统采用了预训练的深度学习模型&#xff0c;使用包含不同等级苹果的图像数据集进行训练。研究方法包括图像预处理、特征提取和苹果等级分类。…

华为、华三交换机纯Web下如何创关键VLANIF、操作STP参数

华为交换机WEB操作 使用的是真机S5735&#xff0c;目前主流的版本都适用&#xff08;V1R5~V2R1的就不在列了&#xff0c;版本太老了&#xff0c;界面完全不一样&#xff0c;这里调试线接的console口&#xff0c;电脑的网络接在ETH口&#xff09; 「模拟器、工具合集」复制整段内…