Разработка базы данных для подготовки данных для машинного обучения и построения графиков AutoML - PullRequest
0 голосов
/ 15 октября 2018

Мы хотим начать анализ наших данных с использованием некоторых методов машинного обучения AutoML.Мы хотели бы создать таблицу, в которой фоновый процесс будет объединять и подготавливать нашу реляционную БД (mysql), чтобы было легко экспортировать электронную таблицу, которая будет импортирована в некоторую программу AutoML (возможно, h2o).

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

В конечном итоге нам нужна электронная таблица следующего формата:

user_id |активность_тип |week1_count |week2_count |week3_count |... |weekN_count

Подсчет каждой недели - это счет этой активности для этого пользователя в каждую неделю после его активности.Как видите, общее количество столбцов будет увеличиваться каждую неделю.Поскольку разрешение указывается в неделях, количество столбцов должно быть разумным.Мы начали 5 лет назад (5 * 52 = 260 недель) и, может быть, мы пойдем еще на 20?(52 * 20 = 1040weeks / столбцов).Выполняется в электронной таблице и довольно близко к максимальному количеству столбцов для mysql (1017 в нашей версии mysql).

Однако мне интересно, может ли альтернативная структура быть такой же производительной без создания столбцов для каждой недели:

user_id |активность_тип |год недели |count

Есть ли плюсы / минусы для любого подхода?В частности, мы также хотели бы использовать эту таблицу в качестве исходных данных для подачи в графические библиотеки, чтобы показать каждое действие с течением времени.

1 Ответ

0 голосов
/ 15 октября 2018

Я думаю, что на самом деле лучше всего сделать следующее:

user_id |активность_тип |год недели |duration_in_weeks |count

Yearweek - функция mysql yearweek (), которая выдает что-то вроде 201825 для года и недели года.

Но для AutoML нам нужно больше с точки зрения расстояния от создания (например, чтобы иметь возможность сказать что-то вроде «Когда пользователь прекращает комментировать после 5 недели, он отменяет».

...