Поиск шаблона в данных - PullRequest
0 голосов
/ 23 июня 2018

У меня есть огромный CSV-файл, который содержит данные о вождении велосипеда. Итак, я получил столбец времени в секундах и столбец скорости. Я хотел бы проверить конкретный шаблон в данных, чтобы определить, что произошло на дороге.

Например, вождение на светофоре:

Я получил это до сих пор:

import pandas as pd

df = pd.read_csv('.csv', usecols = ['time', 'speed']) 
df['accelerating'] = df['speed'].diff() > 0

И я хочу что-то вроде этого:

  df_traffic_light = df.loc[df['speed'] < 15 & accelerating == False #driving torwards the traffic light; 
    & df.loc[df['speed']< 1 #getting really slow or Standing still;
    & df.loc[df['speed']  > 5 & accelerating == True #for light switched to green and starting again 

Ожидаемый результат:

         time     speed  acceleration
0   5.000         14.0          false
1   7.056         12.0          false
2   10.097         8.0          false
3   12.131         1.0          false
4   14.165         0.0          false
5   16.201         0.0          false
6   18.236         2.0          true 
7   20.267         4.0          true

Я попробовал это с dataframe.rolling, но не сработало. Есть идеи, как мне это решить?

1 Ответ

0 голосов
/ 23 июня 2018

Этот ответ может быть неудовлетворительным, но, поскольку вы описываете проблему, ее невозможно решить. Пока у вас есть нет информации о том, что представляет собой определенная (подпоследовательность) в действительности, нет возможности сегментировать данные на помеченные классы, такие как «движение на светофоре» или что-то подобное.

Помимо ручной настройки ваших логических функций, визуализации данных и их обоснования, Я вижу 2 варианта из области машинного обучения:

  1. Обучение под наблюдением : Вам понадобятся как минимум некоторые помеченные данные, из которых алгоритм сможет узнать, каковы характеристики определенных классов. То есть вам понадобятся некоторые события, о которых вы знаете , что они представляют, либо экспериментально (пусть 10 разных людей генерируют в 10 раз больше событий / классов, которые вы хотите идентифицировать), либо путем ручной оценки (под) последовательностей ваши данные, визуализируя и оценивая их в соответствии с вашими экспертными знаниями. Пакет sklearn содержит несколько более или менее простых методов для прогнозирования классов еще неизвестных данных, то есть деревьев решений или машин опорных векторов

  2. Обучение без учителя : Вы просто ищете характерные подпоследовательности, не зная априори, что они представляют. sklearn.cluster имеет несколько алгоритмов для этого. После этого вам и вашим экспертным знаниям будет необходимо взглянуть на характеристики кластеров и присвоить им ярлыки.

Оба подхода требуют определенных усилий, чтобы войти в него. Но я надеюсь, что это указывает на правильное направление. Если во время вашего исследования возникнут более конкретные вопросы, на которые вы не найдете ответов, не стесняйтесь спрашивать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...