Кластеризация объектов на основе временных меток (в Pandas)

Как найти значения (идентификаторы пользователей), которые часто встречаются вместе, на основе метки времени?

Мой вопрос связан с этим вопросом: Создание сеанса на основе анализа файла журнала с помощью pandas - однако мои данные уже сессионные, я хочу чтобы сделать еще один шаг и найти пользователей, которые входят в систему в одно и то же время, что означает, что «sessionBegin» находится рядом.

Конечно, мы должны установить степень детализации, давайте предположим, что пользователи, у которых 'sessionBegin' меньше 30 минут, вошли в систему в одно и то же время.

# my data (a series with level-2 index):

                         sessionBegin
userID    sessionID

      A            1        2014-5-7 14:15
      A            2        2014-5-8 16:30
      B            3        2014-5-7 20:33
      C            4        2014-5-7 14:20
      C            5        2014-5-7 18:58
      C            5        2014-5-8 16:30
      D            6        2014-5-7 15:01
      D            6        2014-5-8 12:04

В этом примере явно наблюдается совпадение (статистическая зависимость?) между userID A и C.

Я думал установить метку времени как индекс и использовать скользящее окно размером 30 минут, но теперь я знал, как распознавать повторяющиеся наборы идентификаторов пользователей. Можно ли распознавать не только пары идентификаторов пользователей, но и более крупные наборы?


person Thomas    schedule 17.03.2015    source источник
comment
Интересно, подойдет ли здесь кластеризация k-средних. Вам нужно будет преобразовать sessionBegin в числовое.   -  person Bob Haffner    schedule 18.03.2015
comment
Временные метки являются числовыми, так как мы можем преобразовать их в unix-эпохи и т. д. Однако каждый объект имеет произвольное количество временных меток (размеров), что, на самом деле, приводит к сложной измерению расстояния. Может быть, поможет коэффициент Пирсона или регрессионный анализ?   -  person Thomas    schedule 18.03.2015
comment
Я не думаю, что кластеризация - это то, что вы ищете, и k-means точно не сработает. Есть несколько алгоритмов извлечения временных паттернов, но я не могу назвать вам их имена.   -  person Has QUIT--Anony-Mousse    schedule 19.03.2015