Я столкнулся с библиотекой TSfresh как способ фейтурировать данные временных рядов. Документация отличная, и она кажется идеально подходящей для проекта, над которым я работаю.Библиотека TSFRESH для python слишком долго обрабатывает
Я хотел реализовать следующий код, который был распространен в разделе быстрого запуска документации TFresh. И это кажется достаточно простым.
from tsfresh import extract_relevant_features
feature_filtered_direct=extract_relevant_features(result,y,column_id=0,column_sort=1)
Мои данные включали 400 000 строк данных датчиков, по 6 датчиков для 15 разных идентификаторов. Я начал запускать код, а через 17 часов он все еще не закончил. Я полагал, что это может быть слишком большим для набора данных для запуска через соответствующий экстрактор функций, поэтому я уменьшил его до 3000, а затем до 300. Ни одно из этих действий не запустило код за час, и я только что закончил закрыв его после часа или около того ожидания. Я попробовал стандартную функцию экстрактор, а
extracted_features = extract_features(timeseries, column_id="id", column_sort="time")
Наряду с попытками примера набора данных, который представляет TSfresh на их быстром запуске секции. Который включает набор данных, который очень похож на мои оригинальные данные, с примерно таким же количеством точек данных, к которым я сводился.
Есть ли у кого-нибудь опыт работы с этим кодом? Как бы вы решили сделать работу быстрее? Я использую Anaconda для python 2.7.
Обновление Кажется, что это связано с многопроцессорной обработкой. Потому что я на окнах, с помощью многопроцессорных код требует, чтобы быть защищены
if __name__ == "__main__":
main()
После того, как я добавил
if __name__ == "__main__":
extracted_features = extract_features(timeseries, column_id="id", column_sort="time")
Для моего кода, примерные данные работали. У меня все еще есть проблемы с запуском функции extract_relevant_features и запуском модуля функций извлечения на моем собственном наборе данных. Кажется, что он продолжает бежать медленно. У меня есть чувство, связанное с многозадачным замораживанием, но без каких-либо ошибок выскакивать невозможно. Мне понадобилось около 30 минут для того, чтобы использовать функции менее 1% моего набора данных.
Когда я запускаю скрипт из консоли, я получаю интересные сообщения об ошибках, которые, похоже, не отображаются в Anaconda. Эти сообщения об ошибках находятся в постоянном цикле, что может объяснить, почему функция так долго выполняет (бесконечно). Созданный RuntineError связан с freeze_support() Попытка запуска нового процесса до завершения начальной загрузки. Не знаю, что это значит –