Как сформировать множественные временные данные для lstm - PullRequest
0 голосов
/ 04 ноября 2019

У меня есть 30 Dataframes разных временных рядов с одинаковым размером функции (6), но разной длины временных рядов (> 500000). Каждый Dataframe имеет один идентификатор, который должен быть предсказан. Это должно быть проблемой регрессии. Даже если у меня нет временного ряда для идентификатора 5 (всего идентификаторов 1500), сеть должна вывести идентификатор рядом с реальным идентификатором.

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

seed = 11
np.random.seed(seed)

import_new_Data = True
if import_new_Data:
    csv_files = glob.glob('/home/lta-user/PycharmProjects/regression/Testdaten_2/*.csv')
    list_data = []
    label_list = []

    sum = 0
    ##import the datasets and concat them to one dataset
    for path in csv_files:
        dta = dta.read_sets(path)
        list_data.append(dta)

    df = pd.concat(list_data, ignore_index=True)  # concat the data to one DataFrame



labels = df.pop(df.columns[len(df.columns)-1])
labels = labels.values
df = df.values


#the data is normalized in a range from 0 to 1
scaler = MinMaxScaler(feature_range=(-1, 1))
df = scaler.fit_transform(df)

df = df.reshape(1,df.shape[0],df.shape[1])


normed_train_data, normed_test_data, train_labels, test_labels = model_selection.train_test_split(df, labels,
                        train_size=0.75, test_size=0.25, random_state=seed)


#----------------------------------------------------------------------------------------------------------------------
#building the model
#----------------------------------------------------------------------------------------------------------------------

def build_model():
  model = keras.Sequential([
    #Creating a fully connected layer
    #1. Hidden-Layer: Fully connected with ReLu as activation function
    layers.LSTM(12, activation='relu', input_shape = (?,?,?),return_sequences=True),
    #Output-Layer: Fully connected with an linear activation function
    layers.Dense(1, kernel_initializer='normal', activation='linear')
  ])

  #Choosing the Adam-Optimizer with an learning rate of 0.001
  optimizer = tf.keras.optimizers.Adam(0.001)

  model.compile(loss='mean_squared_error', optimizer=optimizer, metrics=['mean_absolute_error', 'mean_squared_error'])
  return model

#create network
model = build_model()

model.summary()        #prints a description of the model

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