这篇文章将为大家详细讲解有关如何使用Facebook的Prophet来预测空气质量,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。
对于许多机器学习工程师来说,制作高质量的预测很难。它需要大量的经验和非常具体的技能。此外,其他预测工具太不灵活,无法纳入有用的假设。
出于这些原因,Facebook开源Prophet,这是Python和R中提供的预测工具。该工具允许专家和非专家以最小的努力生成高质量的预测。
在这里,将使用Prophet来帮助我们预测空气质量!
导入并清理数据
与往常一样,首先导入一些有用的库:
然后导入数据集并预览它:
你应该看到以下内容:
数据集的前五个条目
如您所见,数据集包含有关不同气体浓度的信息。每天每小时记录一次。您可以在此处找到所有功能的说明。
https://www.kaggle.com/sayakchakraborty/air-quality-prediction-of-relative-humidity
如果更多地浏览数据集,会注意到有许多值为-200的实例。当然,负面集中是没有意义的,因此需要在建模之前清理数据。
首先,摆脱存在空值的所有实例:
之后,需要将日期列解析为日期,并将所有测量值转换为浮点数:
然后,通过取每个测量的平均值来按天汇总数据:
此时,数据应如下所示:
还有一些需要摆脱的NaN。可以看到每列中有多少NaN:
摆脱超过8 NaN的列:
完善!现在应该按周汇总数据,因为它会给出更平滑的分析趋势。
真棒!现在准备更多地探索数据了。
探索性数据分析(EDA)
绘制数据集的每一列:
花点时间查看每个情节并确定有趣的趋势。为了长度只考虑NOx的浓度。
氮的氧化物是非常有害的,因为它们反应形成烟雾和酸雨,并且负责形成细颗粒和地面臭氧。这些对健康有不利影响,因此NOx的浓度是空气质量的关键特征。
因此在继续建模之前,删除所有不相关的列:
Modelling
首先导入Prophet:
然后,Prophet要求将date列命名为ds,将要素列命名为y:
现在,数据应该是这样的:
然后,定义一个训练集。为此将保留最后30个用于预测和验证的条目。
然后,简单地初始化Prophet,使模型适合数据,并进行预测!
应该看到以下内容:
这里,yhat表示预测,而yhat_lower和yhat_upper分别表示预测的下限和上限。
Prophet允许轻松绘制预测:
得到:
NOx浓度预测
如您所见,Prophet只是使用直线向下线来预测未来的NOx浓度。
您还可以使用命令查看时间序列是否具有任何有趣的功能,例如季节性:
得到:
在这里,Prophet只发现了一个没有季节性的下降趋势。
现在,通过计算模型的平均绝对百分误差(MAPE)和平均绝对误差(MAE)来评估模型的性能:
应该看到MAPE是13.86%而MAE是109.32,这并不是那么糟糕!请记住根本没有对模型进行微调。
最后,用它的上限和下限绘制预测:
得到:
预测每周平均NOx浓度
关于如何使用Facebook的Prophet来预测空气质量就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看到。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。