Я работаю над одномерной сверточной нейронной сетью для прогнозирования фондового рынка и использую функцию keras API Conv1D .Ниже приводится сводка данных:
- X_train и Y_train с формой (1781, 3)
- 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)
Я хочу, чтобы сеть работала наданных и попытайтесь предсказать «Закрыть» для текущих данных, т.е. краткосрочной базы.