Как лучше всего преобразовать данные временных рядов (формат паркета) в последовательности с помощью петасторма?
Простите меня, если употребляю эти термины в неправильном смысле. Я все еще борюсь со многими искрами и распределенными связанными вещами.
Вот мой вариант использования, и я не могу получить полное представление о реализации.
У меня есть данные временных рядов из 40 столбцов и 100 временных шагов, сохраненные в формате паркета.
Я узнал, что для проведения распределенного обучения на больших данных мы можем использовать петасторм для внедрения данных и хоровод для обучения. Но мне неясно, как данные должны быть разделены (один раздел на идентификатор? Какие группы строк?) И как преобразовать данные в последовательности, которые ожидает LSTM?
Любые указатели в этом направлении будут большим подспорьем. Спасибо!
1 ответ
Я могу придумать 2 способа загрузки данных временных рядов с помощью petastorm. Во-первых, сгруппировать по столбцу идентификатора, а затем объединить функции в массив, используя, например, функцию sql.
id | time | feature_1 |
---------------------------------------------------
1 | [t11, t12, t13, ...] | [f11, f12, f13, ...] |
2 | [t21, t22, t23, ...] | [f21, f22, f23, ...] |
Когда вы сохраняете такие данные, вам не нужно беспокоиться о группах строк паркета, потому что каждая строка содержит все данные ровно для одного временного ряда.
Другой вариант — использовать n-граммы для загрузки неагрегированных данных. N-граммы позволяют загружать строки в определенном порядке. Есть несколько примеров этого в документации petastorm API в разделе