Как правильно использовать tsfresh? - PullRequest
0 голосов
/ 23 октября 2019

Я хочу использовать tsfresh для извлечения автоматических функций с помощью python из моих csv-файлов временных рядов. Есть около 300 CSV-файлов с одним столбцом около 1500000 записей. Первая запись - это метка. В целях тестирования я просто использую 9 CSV-файлов и сокращаю записи в сто тысяч раз.

Чтобы получить правильный формат для tsfresh из CSV, я использую следующий код.

import numpy as np
def CSV_File_Loop(Path_File):
    list1 = []
    files = [ join(Path_File,f) for f in listdir(Path_File) if isfile(join(Path_File,f)) and '.csv' in  f]
    ID = 1
    global list2
    global list3
    list3 = []
    list2 = []
    for f in files:
        csv_input = pd.read_csv(f, header = None)
        a = csv_input.iloc[::100000]
        label = csv_input[0][0]
        list3.append(int(label))

        time = [i for i in range(len(a))]
        a["Data"] = a
        a["Label"] = int(label)
        list2.append(str(ID))
        a["ID"] = str(ID)
        a["Time"] = time
        new_csv_input = a[1:]

        list1.append(new_csv_input)
        ID += 1
    df = pd.concat(list1)
    df1 = df.iloc[:,[3,4,1]]
    Y = pd.Series(list3, index = list2 )

Когда я ввожу df1 в extract_features, я получаю 794 функции.

from tsfresh import extract_features

extracted_features= extract_features(df1, column_id="ID", column_value="Data", column_sort="Time")

Снимок экрана

После этого я хотел бы уменьшить количество функций.

from tsfresh import select_features
from tsfresh.utilities.dataframe_functions import impute

impute(extracted_features)
feature_filteres = select_features(extracted_features, Y)

Я не получаю сообщение об ошибке, но оно говорит мне, что кадр данных пуст.

! Пустой кадр данных

Большое спасибо за вашу помощь.

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