Операция 1D свертки на данных запаса - PullRequest
0 голосов
/ 08 февраля 2019

Я работаю над одномерной сверточной нейронной сетью для прогнозирования фондового рынка и использую функцию keras API Conv1D .Ниже приводится сводка данных:

  1. X_train и Y_train с формой (1781, 3)
  2. X_test и Y_test с формой (446, 1)

где 4 - функции. («Открыть», «Высокий», «Низкий» и зависимая переменная «Закрыть»)

Как мне изменить эти данные, чтобы сеть могла обработать их?

Я новичок в Convolutional Neural Network (CNN), и я знаю, что CNN не является отличным вариантом для таких данных (Stock Data), но я хочу попробовать.

Я также пытался изменить данные, например

X_train = (1781, 3, 1)

X_test = (446, 3, 1) с аргументом входной формы:Conv1D as (3, 1)

Тем не менее, я все еще сталкиваюсь с проблемами при выполнении операции MaxPooling1D (2) .

model_m = Sequential()
model_m.add(Conv1D(64, 2, activation='relu', input_shape=(3, 1)))
model_m.add(Conv1D(64, 2, activation='relu'))
model_m.add(MaxPooling1D(2))
model_m.add(Conv1D(32, 2, activation='relu'))
model_m.add(Conv1D(32, 2, activation='relu'))
model_m.add(GlobalAveragePooling1D())
model_m.add(Dropout(0.5))
model_m.add(Dense(64, activation='relu'))
model_m.add(Dense(units=1, activation='softmax'))

model_m.compile(loss='mse', optimizer='adam', metrics=['accuracy'])

model_m.fit(X_train, Y_train, batch_size=100, epochs=50, validation_split=0.2, validation_data=(X_test, Y_test), verbose=1)

Я хочу, чтобы сеть работала наданных и попытайтесь предсказать «Закрыть» для текущих данных, т.е. краткосрочной базы.

...