Преобразование набора данных временных рядов в набор данных контролируемого обучения - PullRequest
0 голосов
/ 30 апреля 2019

У меня есть набор данных с временными рядами (ежедневно) для нескольких элементов (например, пользователей).Данные выглядят упрощенно так: https://i.ibb.co/Pj4TnHW/trans-original.jpg (я не могу опубликовать изображения, из-за отсутствия точек повторения, извините)

Этот набор данных имеет все те же атрибуты (например, меры) для каждогопользователь.Эти меры принимаются ежедневно в течение определенного промежутка времени.У каждого пользователя есть своя «дата события».

Моя цель состоит в том, чтобы преобразовать этот набор данных временного ряда (ориентированный на строки) в набор данных, который можно использовать для обучения под наблюдением.Мой желаемый макет будет выглядеть так: https://i.ibb.co/8DxYpCy/Unbenannt.jpg

В настоящее время я применяю свое решение к набору данных с ~ 60 мерами.До сих пор я достиг этого, используя итерацию над user_id и применяя несколько шагов с функциями pandas.melt (), pandas.transpose ().Но это требует большого предварительного форматирования и становится медленнее с большими наборами данных.

Есть ли лучший способ сделать мое преобразование?Я читал об этом https://machinelearningmastery.com/convert-time-series-supervised-learning-problem-python/, но, похоже, это проблема другого типа ...

// РЕДАКТИРОВАТЬ # 1: В соответствии с просьбой я создал наименьший возможный скрипт для ноутбука / Python с упрощеннымнабор данных для демонстрации того, что я делаю: https://www.file -upload.net / download-13590592 / timeseries_to_supervised.zip.html (Блокнот Jupyter, экспортированная HTML-версия, пример входного набора данных)

1 Ответ

0 голосов
/ 30 апреля 2019

Раньше я делал такие вещи с R , это язык, хорошо разработанный для работы со строками (функциональное программирование).Вы можете использовать библиотеку datatable , это очень быстро.Если я могу спросить, какую колонку вы пытаетесь предсказать?Будьте осторожны, чтобы не предсказать исход, основанный на данных настоящего или будущего, вы можете использовать только прошлое:)

...