Как рассчитать / подготовить данные временного ряда такого типа? - PullRequest
1 голос
/ 09 мая 2020

Я пытаюсь классифицировать данные временного ряда, в которых у нас есть n туристов, путешествующих между двумя местами. Мы просто пытаемся классифицировать их без учета сезонности

Проблема в том, что каждый турист начинается и заканчивается в разные даты, а у некоторых из них отсутствуют временные метки, плюс у них разное время в пути. по какой-либо причине (объездные пути, пути и т. д. c ...). Для удобства широта и долгота равны l, lg соответственно.

    n1 = [(l, lg, 04/08 00:00),(l, lg, 04/08 12:03),(l, lg, 04/09 02:30), (l, lg 04/10 00:05)...]
    n2 = [(l, lg, 03/08 00:00),(l, lg, 03/09 03:03),(l, lg, 03/10 00:30), (l, lg 03/10 13:05)...]
    n3 = [(l, lg, 04/07 00:00),(l, lg, 04/08 03:03),(l, lg, 04/10 00:30), (l, lg 04/11 14:05)...]
    len(n1) == len(n2) != len(n3) #delayed due to detour

Наиболее предсказуемая регулярность данных состоит в том, что в один день может встречаться не более 2 точек данных, поэтому

    nx = [(l, lg, 04/08 00:00),(l, lg, 04/08 10:00),(l, lg, 04/08 13:00)...]

никогда бы не произошло.

Что я собираюсь сделать, так это найти игнорирование дат поездок и просто учитывать изменение времени. Это устранило бы расхождения в датах начала:

    n1 = [(l, lg, 1),(l, lg, 2),(l, lg, 3), (l, lg, 5)...]
    n2 = [(l, lg, 1),(l, lg, 3),(l, lg, 5), (l, lg, 6)...]
    n3 = [(l, lg, 1),(l, lg, 3),(l, lg, 7), (l, lg, 10)...]

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

    n1 = [(l, lg, 1),(l, lg, 2),(l, lg, 3), (l,lg,4*), (l, lg, 5)...]
    n2 = [(l, lg, 1), (l,lg, 2*), (l, lg, 3),(l,lg,4*), (l, lg, 5)...]
    #timestamp* indicates imputed value

Тогда я бы просто добавил каждую nx st len ​​(nx) == len (самая длинная поездка). И дополненные значения будут просто широтой / долготой места назначения.

      n_x = [...,(l, lg, 28),(dest_lat, dest_long,29),(dest_lat, dest_long, 30)]
      n_y = [...,(l, lg, 28),(l,lg, 29),(dest_lat, dest_long, 30)]
      #n_y is the longest trip, n_x has been padded s.t. len(n_x) == len(n_y)

В настоящее время у меня есть эти данные в pandas кадре данных. df.columns = ['ID','trip_points','trip_times'] (точки поездки = список кортежей широты и долготы для каждой поездки), и я пытаюсь выяснить, как реализовать то, что я только что описал, или посмотреть, есть ли другой способ, которым я должен это сделать. Я ломал себе голову, но просто не могу понять, не хватает ли мне более подходящего решения.

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