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

Как я уже говорил в последнем посте, прямой доступ Exploratory к MongoDB Query и широкому спектру пакетов R делает такое исследование данных намного более быстрым и итеративным.

Сегодня я хочу показать вам, как вы можете быстро и итеративно исследовать данные MongoDB с помощью Exploratory Desktop, а затем как вы можете оптимизировать генерацию ключевых идей в Exploratory Cloud с помощью простого, но реального примера использования.

Сценарий использования

Допустим, вы ведете бизнес SaaS и собираете и храните информацию о своей пользовательской активности в MongoDB. Один из наиболее распространенных способов измерить взаимодействие пользователей с вашим сервисом - рассчитать соотношение DAU (Daily Active Users) / MAU (Monthly Active Users). Если этот показатель высокий, это означает, что более высокий процент пользователей возвращается, чтобы воспользоваться вашим сервисом.

Итак, вы хотите понять, как работает соотношение DAU / MAU, и, основываясь на исторической тенденции, вы хотите спрогнозировать, как будет выглядеть вовлеченность пользователей в следующие 30 дней.

Вот комплексные шаги, начиная с получения данных из MongoDB и заканчивая планированием.

  1. Запрос и импорт журнала доступа из MongoDB
  2. Преобразование и вычисление отношения DAU / MAU
  3. Визуализируйте соотношение DAU / MAU
  4. Примените Машинное обучение к прогнозированию DAU / MAU на следующие 30 дней
  5. Опубликовать в Поделиться / запланировать

Если вы хотите выполнить шаги один за другим внутри Exploratory Desktop, я предоставил EDF (файл исследовательских данных) здесь. Вы можете скачать и импортировать, а также следовать инструкциям, кроме шага запроса MongoDB.

Давайте начнем.

1. Запрос и импорт журнала доступа из MongoDB

Во-первых, вы можете использовать пользовательский интерфейс MongoDB Data Import UI, чтобы написать запрос, чтобы получить достаточно данных из базы данных MongoDB.

Например, если вы хотите запросить данные за последние 6 месяцев, вы можете написать что-то вроде ниже.

{"timestamp":{$gte: new Date(Date.now() - 180*24*60*60 * 1000)}}

Взгляните на это сообщение в блоге, чтобы узнать больше о том, как писать запросы MongoDB с помощью Exploratory.



После импорта данных вы можете быстро просмотреть сводную информацию.

2. Преобразование данных и вычисление отношения DAU / MAU

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

2.2. Округлить дату до дня и месяца

В меню заголовка столбца выберите «Круглый» - ›« Этаж »-› «День».

Мы можем повторить это, чтобы округлить дату до уровня месяца.

2.2. Рассчитать DAU

Чтобы вычислить DAU, мы хотим сначала сгруппировать данные по столбцу «день», а затем подсчитать количество уникальных пользователей, применив функцию «n_distinct» к столбцу «user.id» с «summarize 'команда.

Сначала выберите «Группировать по» в меню заголовка столбца для столбца «День».

Затем выберите «Суммировать» в меню заголовка столбца «user.id».

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

2.4. Рассчитать MAU

Теперь мы хотим вычислить MAU, но есть одна проблема. После расчета DAU с помощью команды «summarize» у нас больше нет информации об идентификаторе пользователя в данных.

Это делает невозможным подсчет уникального количества пользователей за каждый месяц.

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

По сути, мы можем создать фрейм данных ветви из шага до того, как мы суммировали данные для расчета DAU, вычислить MAU в фрейме данных ветви, а затем присоединить фрейм данных ветви обратно к основному фрейму данных, как показано ниже.

Вернитесь к шагу до того, как мы начали группировать / суммировать данные.

И выберите «Создать ветку».

После создания нового фрейма данных «ветви» мы можем рассчитать MAU так же, как и для DAU, за исключением того, что мы хотим сгруппировать данные, используя столбец «месяц» для расчета MAU на этот раз.

Теперь, когда у нас есть рассчитанные DAU и MAU, давайте снова объединим их.

2.5. Присоединение к кадрам данных DAU и MAU

Вернитесь к основному фрейму данных, где мы рассчитали DAU. Затем выберите «Присоединиться» в меню кнопки «Добавить».

В пользовательском интерфейсе диалогового окна «Присоединение» выберите фрейм данных ветви и выберите столбец «месяц» из обоих фреймов данных.

После объединения двух кадров данных вы увидите, что каждая строка содержит как DAU, так и MAU.

2.6. Рассчитать соотношение DAU / MAU

Как только мы получим данные в этом формате, остается лишь разделить DAU на MAU с помощью команды «mutate» для расчета отношения DAU / MAU.

Выберите «Mutate» в меню заголовка столбца.

Введите следующий расчет в области редактора расчетов.

DAU/MAU

Теперь у вас есть рассчитанное соотношение DAU / MAU.

3. Визуализируйте тенденцию DAU / MAU.

Мы можем перейти в представление визуализации и быстро визуализировать тенденцию соотношения DAU / MAU с помощью линейного графика в представлении визуализации.

4. Примените алгоритм машинного обучения к прогнозированию.

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

Выберите «Run Analytics» - ›« Run Time Series Forecast ».

В диалоговом окне конфигурации вы можете выбрать столбец «день» для «Столбец даты / времени» и установить «День» в качестве уровня агрегирования даты. И выберите столбец «DAU_MAU» (соотношение DAU / MAU) для «Столбец значений». Поскольку данные уже были агрегированы на уровне «День», настройка функции агрегирования не имеет особого значения, поэтому мы можем оставить ее по умолчанию.

Чтобы сделать прогноз на следующие 30 дней, мы можем ввести 30 в поле «Период времени прогнозирования». Поскольку для параметра «Уровень агрегирования» задано значение «День», эти 30 считаются 30 днями.

Это прогнозирование временных рядов использует внутри пакета «Prophet» R. Если вы хотите узнать больше, прочтите этот вводный пост.



Самое замечательное в этом алгоритме заключается в том, что вы можете получить довольно хорошее качество результата, не будучи экспертом в области прогнозирования временных рядов. Таким образом, вы можете пока оставить все параметры справа по умолчанию и просто нажать кнопку «Выполнить».

Вы получите сразу же сгенерированные прогнозные значения, значения тренда, сезонные значения и т. Д.

И вы можете быстро визуализировать это с помощью той же линейной диаграммы. На этот раз вы хотите добавить ось Y2 для прогнозируемых значений и Y3 для значений линии тренда.

Вы можете получить этот светло-оранжевый цветовой диапазон, который представляет собой доверительный интервал для прогнозируемых значений, выбрав «Диапазон» в меню свойств оси Y2.

5. Публикуйте, чтобы поделиться и запланировать

Наконец, как только вы найдете полезную информацию, которой хотите делиться со своей командой или отслеживать каждый день, вы можете опубликовать ее в Exploratory Cloud.

Нажмите кнопку «Опубликовать» вверху и выберите меню «Поделиться / Расписание».

В диалоговом окне «Опубликовать в общий доступ / запланировать» вы можете установить заголовок, описание и т. Д. Учитывая, что этот тип данных является конфиденциальной информацией, вы должны обязательно установить «Частный» в качестве режима совместного использования. Это гарантирует, что ваши идеи смогут увидеть только те, кого вы явно пригласили.

После публикации нажмите ссылку «Просмотреть общую диаграмму» в нижней части диалогового интерфейса.

Это откроет страницу аналитики.

Теперь вы можете приглашать других по их адресам электронной почты.

Или, например, вы можете запланировать обновление данных каждое утро.

После того, как это запланировано, вы можете просто открыть свою страницу «Моя статистика» (http://exploratory.io) и каждое утро просматривать последние данные из любого места.

Как вы уже видели, с помощью Exploratory вы можете не только легко получить доступ к данным MongoDB, но также воспользоваться возможностями обработки данных и аналитики R, чтобы гибко и быстро получить более глубокое понимание. В сочетании с Exploratory Cloud вы также можете автоматизировать создание идей и легко делиться ими со своей командой.

Удачного исследования данных MongoDB!

Если у вас еще нет Exploratory, вы можете подписаться на бесплатную пробную версию здесь. Если вы сейчас студент или преподаватель, это бесплатно!

Если вы нашли это полезным, пожалуйста, поделитесь им.

Пакеты R, использованные в этом посте