Обнаружение временных аномалий в реальном мире с помощью контролируемого машинного обучения и теории множеств
Сиэтл Берк Гилман Трейл
Изучите открытые данные города Сиэтла
Оглавление:
I. Постановка задачи
II. Ремоделирование временных рядов в контролируемую задачу
III. Контролируемое моделирование и анализ
I. Постановка задачи
Данные можно скачать здесь: Сиэтл Берк Гилман Трейл | Каггл
Суть этой постановки задачи состоит в том, что нам необходимо обнаружить аномалии за 3 часа.Аномалия определяется как всего 500 человек на следе через 3 часа. Чтобы решить эту проблему, мы даны почасовые данные о дорожном движении — пешеходном и велосипедном.
II. Ремоделирование временных рядов в контролируемую задачу
Итак, что мы можем сделать, так это сделать две копии данных, а затем соединить их так, чтобы час 0 сопоставлялся с часом 3 в одной строке.
Как это делается?
Сначала вносим данные:
import pandas as pd df = pd.read_csv(r’/content/burke-gilman-trail-north-of-ne-70th-st-bike-and-ped-counter.csv’)
Следующий:
# change df to dataframe df = pd.DataFrame(df) df = df.fillna(0)
После того, как мы это сделали, теперь давайте сделаем копию наших данных, которая начинается со строки 3:
#create df2 that starts at the 4th row df2 = df[df.index >= 3] df2.head()
Теперь мы добавим столбец индекса в оба фрейма данных, который начинается с 1:
# add a numbering column to both df1 and df2. the first row should 1, second row is 2 and so on. Both dataframe columns should start at 1 df['index'] = list(range(1, len(df) + 1)) df2['index'] = list(range(1, len(df2) + 1))
Причина, по которой мы это делаем, заключается в том, что мы можем присоединиться к столбцу индекса. Индекс 1 присоединится к индексу 1 в df2, но в этой строке мы увидим час 0 слева и час 3 справа…