tsfresh: MemoryError для большой базы данных - PullRequest
0 голосов
/ 28 октября 2019

Я хотел бы использовать tsfresh , чтобы извлечь некоторые данные из моих данных и сохранить их на моем диске. Мои данные состоят из 33 наборов данных, каждый из которых содержит от 2000 до 10000 массивов временных рядов с 2048 значениями в каждом. Мой компьютер имеет 32 ГБ ОЗУ, и вот код, который я использую:

from tsfresh.feature_extraction import extract_features, MinimalFCParameters, EfficientFCParameters, ComprehensiveFCParameters
import pandas as pd
import pickle

featureExtractionMode = '...'
if __name__ == '__main__':  
    for dataSetKey in myData:
        currentSubjectDictionary = myData[dataSetKey]
        tsFreshDataFrame = createAndReturnPandasFrameOfDataSet(...)
        if (featureExtractionMode == 'minimal'):
            minimalFCParametersForTsFresh = MinimalFCParameters()
            extracted_features = extract_features(tsFreshDataFrame, column_id="id", default_fc_parameters = minimalFCParametersForTsFresh)
        elif (featureExtractionMode == 'comprehensive'):
            comprehensiveFCParametersForTsFresh = ComprehensiveFCParameters()
            extracted_features = extract_features(tsFreshDataFrame, column_id="id", default_fc_parameters = comprehensiveFCParametersForTsFresh)
        elif (featureExtractionMode == 'efficient'):
            efficientFCParametersForTsFresh = EfficientFCParameters()
            extracted_features = extract_features(tsFreshDataFrame, column_id="id", default_fc_parameters = efficientFCParametersForTsFresh)

        extracted_features.to_pickle(myOutputFolder+dataSetKey+'.pkl')

Если строка featureExtractionMode имеет значение «минимальный», все работает как положено. Однако, если он имеет значение «всеобъемлющий» или «эффективный», алгоритм завершается с ошибкой «MemoryError».

Мне известно о этой проблеме github , но ответ «у вас естьлибо уменьшить количество функций, либо количество временных рядов, «учитывая, что для меня это неудовлетворительно, поскольку я действительно хотел бы использовать как можно больше функций из моих данных.

PS: я заметил, чтоне является тегом 'tsfresh'. Может ли кто-нибудь с достаточно высокой репутацией создать его? Большое спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...