通过监督机器学习和集合论进行现实世界的时间异常检测

使用监督机器学习和集合论进行时间异常检测

西雅图伯克吉尔曼小径

探索西雅图市的开放数据

目录:

I. 问题陈述

II. 将时间序列重新建模为监督问题

III. 监督建模和分析

I. 问题陈述

可以从这里下载数据:Seattle Burke Gilman Trail | Kaggle

这个问题陈述的核心是我们需要提前3小时检测异常情况。 异常定义为3小时后小径上总人数超过500。为了解决这个问题,我们已经获得了每小时的小径交通数据-行人和自行车。

II. 将时间序列重新建模为监督问题

我们可以做的是复制数据的两个副本,然后将数据连接起来,使得0小时和3小时在同一行上。

如何做到这一点?

首先,我们引入数据:

import pandas as pddf = pd.read_csv(r’/content/burke-gilman-trail-north-of-ne-70th-st-bike-and-ped-counter.csv’)

接下来:

# 将df更改为数据框df = pd.DataFrame(df)

df = df.fillna(0)

一旦我们完成了这个步骤,现在让我们复制我们的数据,从第4行开始:

# 创建从第4行开始的df2df2 = df[df.index >= 3]df2.head()

现在,我们将为两个数据框添加一个起始于1的索引列:

# 为df1和df2添加一个编号列。第一行应该是1,第二行是2,依此类推。两个数据框的列都应该从1开始df['index'] = list(range(1, len(df) + 1))df2['index'] = list(range(1, len(df2) + 1))

我们这样做的原因是为了能够根据索引列进行连接。索引1将与df2的索引1进行连接,但在那一行上,我们将在左侧看到0小时,在右侧看到3小时…