Как лучше всего преобразовать данные временных рядов (формат паркета) в последовательности с помощью петасторма?

Простите меня, если употребляю эти термины в неправильном смысле. Я все еще борюсь со многими искрами и распределенными связанными вещами.

Вот мой вариант использования, и я не могу получить полное представление о реализации.

У меня есть данные временных рядов из 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 в разделе. Обратите внимание, что если вы следуете этому подходу, вам нужно беспокоиться о группах строк паркета, потому что n-граммы не охватывают группы строк (см. пример, описанный в документации по API). Я не уверен, что разделение, например,всегда будет гарантировать, что все данные для одного временного ряда находятся в одной группе строк. Вам также может понадобиться установить размер группы строк на некоторое значение, которое зависит от размера вашего временного ряда.

Другие вопросы по тегам