Как я вижу, у вас есть несколько вариантов в зависимости от вашей конечной цели.
1. Формат двухмерный:
Для каждого пользователя можно рассчитать разницу между каждым последующим временем транзакции. Это может дать вам вектор для каждого пользователя, для которого вы можете вычислить некоторую особенность, например среднее и квартили.
В результате получается что-то вроде разницы между транзакциями в секундах:
User_ID mean_diff_transaction median_diff_transaction ...
0 A 60 50
1 B 40 30
Если ваша функция позиции - это что-то, описывающее «где» была транзакция, вы могли бы различать транзакции только одной и той же позиции ( groupby ваш друг здесь). Предоставление вам двухмерного вектора для каждого пользователя со временем между транзакциями в каждой позиции. Тогда ваши функции также могут быть вычислены по позиции:
User_ID mean_diff_transaction_pos1 median_diff_transaction_pos1 ...
0 A 60 50
1 B 40 30
Если у пользователя нет транзакций в этом месте, установите для него значение по умолчанию, которое будет зависеть от цели и алгоритма, который вы будете использовать чтобы достичь этой цели.
Это представление позволит вам использовать алгоритм classi c, который вы уже использовали, например, KNN
2. Сохранение трехмерных данных (с точки зрения векторного пользователя):
User_ID transaction_time position
0 A 2019/01/01 00:00:00 1
1 B 2019/01/01 00:00:00 1
2 A 2019/01/01 01:00:00 1
3 B 2019/01/01 01:00:00 2
Вы можете рассматривать эти данные как график, где ось X - это время (например, отметка каждый день) ) и номер оси Y транзакции. Позволяет вам построить график количества транзакций в день для каждой позиции, чтобы увидеть, например, их «популярность» с течением времени. Тот же подход может быть применен с точки зрения пользователя вместо позиции.
Если вы хотите отслеживать разницу во времени между транзакциями во времени, просто сохраните эту разницу как вектор, что приведет к «виду» набора данных временных рядов.
В зависимости от того, что вы пытаетесь анализировать, данные временных рядов могут позволить вам использовать такие вещи, как сезонная декомпозиция (см. statsmodels в python) и целый ансамбль техник, связанных с временными рядами.