Zhixiong Weng

人们每时每刻都离不开氧,并通过吸入空气而获得氧。一个成年人每天需要吸入空气达6500升以获得足够的氧气,因此,被污染了的空气对人体健康有直接的影响,空气品质对人的影响更是至关重要。每出现一次AQI指数数值过大,可以肯定它都会引起我们足够的重视,提醒我们要保护我们生存的环境,尽可能地减少对环境的破坏与污染。而从更高的层次来说,消除或减少空气污染对人类的危害,唯一可行的就是提高我们的环保理念,并切实在日常生活中对环境加以保护。从机器学习的角度来说,根据已有数据可预测未来AQI浓度,也可以将空气质量分类为优良差等,对提高环境保护有重要意义。

机器学习研究

任务/目标

根据已有AQI数据对其进行简单的聚类、分类、降维、相关性分析、预测、可视化等,对其探索得出相关结论,如使用k-means将数据聚类,将其分成适合的组数探究AQI数据的分布情况;使用回归预测未来的AQI;使用主成分分析对其降维并探究AQI气体的相关性;使用K-NN算法将AQI数据分类,给未来没有分类的数据自动分好类等。

数据源准备

网络爬取别称数据提取,就是从指定的网站上收集数据信息。网络爬虫是一种程序,他可以高效的获取我们想要的数据,主要用于搜索引擎,通过使用request、scrapy、selenium等库获取该案例所需数据。如下图为部分数据:

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第1张图片

数据降维

AQI数据有多个变量,为了方便后续计算,使用主成分分析法将多个变量减少到两至三个:

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第2张图片

选择两个主成分即可保留数据集的大部分信息。

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第3张图片

建模

k均值算法

根据空气质量数据将其分成合适的组数,探索各空气污染气体的分布情况。过程是先收集数据并选择合适的中心点,计算其他数据点到中心点的距离,计算平均值,将数据点分配到给他最近的聚类中心。

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第4张图片

线性回归

回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析, 时间序列模型以及发现变量之间的因果关系。通常使用曲线/线来拟合数据点,目标是使曲线到数据点的距离差异最小。对大量的观测数据进行处理,从而得到比较符合事物内部规律的数学表达式。也就是说寻找到数据与数据之间的规律所在,从而就可以模拟出结果,也就是对结果进行预测。

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第5张图片

k近邻算法

给定一个训练数据集,对新的输入实例,在训练集中找到与该实例最临近,就把这个实例分配到这个类中。

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第6张图片

当所预测的空气污染物PM2.5,PM10,O3,No2,Co,So2的含量分别为29,20,50,13,0.88,10μg/m3(CO为mg/m3)时,空气质量为优。空气质量令人满意,基本无空气污染,对健康没有危害,各类人群可多参加户外活动,多呼吸一下清新的空气。

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第7张图片

Python深度学习GRU、LSTM 、BiLSTM-CNN神经网络空气质量指数AQI时间序列预测及机器学习分析..._第8张图片

使用此模型,当测量出污染物指数时就可以预测空气的质量等级。每出现一次AQI指数数值过大,可以肯定它都会引起我们足够的重视,提醒我们要保护我们生存的环境,尽可能地减少对环境的破坏与污染。

Python 中深度学习模型(BiLSTM、GRU、LSTM 及 BiLSTM-CNN)的空气质量指数时间序列数据融合预测分析|附数据代码

接下来将探讨多种深度学习模型在空气质量指数时间序列预测与分析中的应用,通过对比不同模型的性能,以期找到更优的预测方法。

数据介绍

首先,我们获取了包含空气质量相关指标的数据集,其以表格形式呈现,包含了诸如年份(year)、月份(month)、日(day)、小时(hour)以及多种污染物浓度指标(如 PM2.5、PM10、SO2、NO2、CO、O3 等)以及气象相关数据(如温度 TEMP、气压 PRES、露点 DEWP、降雨量 RAIN、风向 wd、风速 WSPM 等)信息。

通过pandas库的相关函数对数据进行读取,代码如下: