通过监督机器学习和集合论进行现实世界的时间异常检测
使用监督机器学习和集合论进行时间异常检测
西雅图伯克吉尔曼小径
探索西雅图市的开放数据
目录:
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小时…