Как найти паттерны во времени посещения приложения?

Есть данные моментов захода юзеров в приложение в течение года. Две колонки: user_id и timestamp.

Хочется найти паттерны, примерно повторяющиеся у крупных групп юзеров.

Предполагаю, что есть и в окне 1 недели какие-то похожие картинки нарисуются (раз в день в начале недели, по 5 раз в выходные) и в окне месяца (ближе к зарплате затухание, резкий скачок после).

С какой стороны подойти к исследованию данных в этом ключе?
  • Вопрос задан
  • 131 просмотр
Пригласить эксперта
Ответы на вопрос 2
DanilBaibak
@DanilBaibak
Machine Learning engineer
Один из вариантов это - анализ временных рядов. Для python есть неплохая библиотека от Facebook - Prophet. Библиотека хорошо работает "из коробки", имеет встроенные инструменты для визуализации.

На Хабре можно найти статью про Prophet. Я пробывал использовать библиотеку для предсказание колебания валютной пары - пример на github-е.
Ответ написан
@SeptiM
В целом звучит как задача кластеризации. Методы тут можно разные выбрать, главное -- как метрику задать.

На вскидку, можно попробовать определить расстояние между пользователями Вася и Петя следующим образом. Для каждого захода Вася ищем ближайший заход Пети и смотрим как они различаются по времени. Получится набор времен t_1, t_2, ... t_В. Делаем тоже самое для Пети. Дальше считаем среднее значение как расстояние. Разницу можно считать на зацикленном периоде (на неделе между воскресеньем и понедельником расстояние -- 1 один день).

Расстояние между Васей и Васей будет 0. Неравенство треугольника вроде выполняется. Если Вася и Петя заходили в одно и то же время, расстояние между ними будет маленькое.

P.S. Расстояние можно посчитать за линию от числа заходов через линейный мердж сортированных массивов.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы