关于机器学习:使用pandasprofiling对时间序列进行EDA

48次阅读

共计 2876 个字符,预计需要花费 8 分钟才能阅读完成。

EDA 是数据迷信工作流程的关键步骤,Pandas-profiling 能够通过一行代码疾速实现 EDA 报告,并且可能提供有意义的见解。

在咱们上次介绍 EDA 工具时,始终将 Pandas Profiling 用作解决结构化表格数据的工具。然而在事实世界的利用中,咱们日常生活中最长接触到的是工夫序列数据:日常口头轨迹数据,电力和水资源耗费数据,它们都有一个共同点——对工夫的依赖性。

因为工夫序列数据的性质,在摸索数据集时剖析的复杂性随着在同一数据集中增加实体个数的减少而减少。在这篇文章中,我将利用 pandas-profiling 的工夫序列个性,介绍 EDA 中的一些关键步骤。

咱们这里应用的数据集是美国的空气质量数据集,能够从 EPA 网站下载。本文残缺的代码和示例能够在 GitHub 中找到。

剖析工夫序列数据集中的多个实体

咱们用的这个数据集是在美国、波多黎各和美属维尔京群岛的户外监测器上收集的空气质量数据。有了这些信息,咱们就晓得这是一个多元工夫序列数据,其中有几个咱们须要思考的实体。

晓得了这一点,就产生了一些后续问题:在波及污染物措施方面,有多少个地点可用?所有传感器是否在同一时间跨度内收集雷同数量的数据?收集到的措施在工夫和地点上是如何散布的?

其中一些问题能够通过将所有测量值和地位与工夫进行比拟的热图答复,如上面的代码片段和图像所示:

 from pandas_profiling.visualisation.plot import timeseries_heatmap
 
 timeseries_heatmap(dataframe=df, entity_column='Site Num', sortby='Date Local')

下面的图表显示了每个实体随工夫变动的数据点。咱们看到并不是所有的气象站都在同一时间开始收集数据,依据热图的强度,咱们能够看到在给定的时间段内,一些气象站比其余气象站领有更多的数据点。这意味着在建模工夫序列时,如果为训练和测试数据集提供动静工夫戳可能比预先确定的工夫戳更好。另外在 EDA 时还将进一步考察缺失的记录和记录的归属范畴。”

有了对实体工夫散布的根本了解之后,咱们就能够开始深入研究数据分析以取得更多见解。因为有多个工夫序列,让咱们看看每个实体的行为。

深刻理解工夫序列指标

如果你曾经在应用 pandas-profiling,可能晓得如何生成报告。

在生成报告时能够通过传递参数 tsmode=true 来启用对工夫序列的反对,并且该库将自动识别具备自相关性的特色(稍后会具体介绍)。为了使剖析失常工作,df 要按实体列和工夫排序,或者利用 sortby 参数来自定义排序规定。

 from pandas_profiling import ProfileReport
 
 profile = ProfileReport(filtered_time_series_data, tsmode=True, sortby="Date Local")
 profile.to_file('profile_report.html')

上面是应用工夫序列模式的输入报告:

季节性和平稳性警报

要疾速把握工夫序列,最简略的办法是查看报告的正告局部,能够发现两个新的正告 - 非安稳和季节性。对于这个特定的用例,每个概要报告将形容每个美国地点在污染物测量方面的特定行为。

以下是咱们报告中的正告:

当工夫序列的统计属性(例如均值和方差)不随工夫序列的察看工夫而变动时,就称该工夫序列是安稳的。相同当工夫序列的统计属性取决于工夫时,它是非安稳的。例如具备趋势和季节性的工夫序列(稍后会具体介绍)不是安稳的——这些景象会影响不同工夫的工夫序列的值。

安稳过程绝对更容易剖析,因为工夫和变量之间存在动态关系。事实上平稳性已成为大多数工夫序列剖析的常见假如。

尽管有用于非安稳工夫序列的模型,但大多数 ML 算法的确冀望输出特色和输入之间存在动态关系。当工夫序列不是安稳的时,从数据建模的模型准确性将在不同的点发生变化。这意味着建模抉择会受到工夫序列的安稳 / 非安稳性质的影响,并且当要将工夫序列转换为安稳时,还须要额定的数据筹备步骤。

总之,这个警报是十分重要的,因为它能够将帮忙辨认此类列并相应地预处理工夫序列。

工夫序列中的季节性是另一种场景,其中数据在定义的周期内反复呈现的定期且可预测的变动。这种季节性可能会覆盖咱们心愿在工夫序列建模时建模的信号,更蹩脚的是它可能会为模型提供强烈的信号。

在下面的 pandas-profiling 图中你会留神到的第一个区别是线图将替换被辨认为工夫相干的列的直方图。应用折线图,咱们能够更好地理解所选列的轨迹和性质。对于这个均匀线图,咱们能够看到轨迹呈降落趋势,具备间断的季节性变动,最大值记录呈现在系列的初始阶段。

接下来,当切换该列的更多详细信息时(如上图所示),咱们将看到一个带有自相干和偏自相干图的新选项卡。

对于工夫序列,自相干显示工夫序列现值处与其先前值的关系。偏自相干是去除先前工夫滞后的影响后工夫序列的自相干。这意味着这些图对于提供无关被剖析序列的自相关度以及挪动均匀度的信息至关重要。

下面的 ACF 和 PACF 图有点不置可否。然而在查看正告时能够看到 NO2 均值是一个非安稳工夫变量,它打消了这些图的可解释性。ACF 图有助于确认咱们狐疑的货色——NO2 平均值是非安稳的——因为 ACF 图值降落十分迟缓,而不是像安稳序列状况下所预期的那样疾速降落到零。

从数据分析中收集的信息、工夫序列的性质以及非安稳和季节性等警报能够让你理解手头的工夫序列数据。但这并不意味着曾经实现了探索性数据分析——咱们的指标是应用这些见解作为终点,进行进一步深刻的数据分析和进一步的数据筹备步骤。

通过剖析空气质量数据集,咱们看到有几列是恒定的,在建模时可能不会减少太多价值。从缺失值图表中还能够看到 SO2 和 CO2 空气质量指数存在缺失数据——所以应该进一步摸索其影响以及插补或齐全删除这些列的范畴。发现有几列带有非安稳和季节性警报,所以数据处理的下一步是使它们安稳或确保咱们的模型能够解决非安稳的数据点。

作为数据科学家,重要的是应用剖析工具疾速获取数据的整体视图(在咱们的案例中是工夫序列),并进一步检查数据预处理和建模阶段并做出理智的决策。

总结

正如 Pandas Profiling 的口号那样:“读取数据,暂停并生成 Pandas 剖析报告。检查数据,而后开始清理并从新摸索数据。”

只管结构化表格数据是最常见的数据,但工夫序列数据也被宽泛应用,并且是许多业务和高级数据驱动解决方案开发的外围。因为工夫序列的性质以及记录是依赖于工夫并影响将来的事件的,所以数据科学家须要在在探索性数据分析阶段找到不同的见解。

Pandas Profiling 能够从用户获取特定于工夫序列的剖析报告 – 包含提醒数据要点的新警报、特定于工夫序列剖析的线图和相干图,这对于咱们剖析工夫序列数据是十分有用的。

https://avoid.overfit.cn/post/4dda70e748f94b6ca201426bdc36b88b

作者:Fabiana Clemente

正文完
 0