Python - 使用 Keras 基于多维数组预测数据

数据挖掘 喀拉斯 美国有线电视新闻网 rnn 数据科学模型
2022-01-26 14:19:37

我有一个数据列表,即所谓的 3D 数组。10350行中的每一行都包含一个 2D 矩阵,大小为150x16(元素为float)(x_train)。这个巨大数组的对应训练数据是一个大小为10350 整数的线性数组,可以是 0 或 1 (y_train)。


我使用不同的方法来估计 test_data。他们都没有使用这种类型的数组。

from matplotlib import pyplot as plt

from keras.models import Sequential
from keras.layers import Dense
from keras.layers import LSTM
from sklearn.preprocessing import MinMaxScaler

min_max_scaler = MinMaxScaler()

train_data_set = np.load("files/samples/A08_Block_sample.npy")
test_data_set = np.load("files/samples/A10_BLOCK_sample.npy")

x_train = []
y_train = []

for i in range(len(train_data_set)):
   x_train.append(train_data_set[i].arr_)
   y_train.append(train_data_set[i].flag_)

   num_units = 4
   activation_function = 'sigmoid'
   optimizer = 'adam'
   loss_function = 'mean_squared_error'
   batch_size = 5
   num_epochs = 100

   regressor = Sequential()

   regressor.add(LSTM(units=num_units, activation=activation_function, input_shape=(10403, 16, 150)))

   regressor.add(Dense(units=1))

   regressor.compile(optimizer=optimizer, loss=loss_function)

   regressor.fit(x_train, y_train, batch_size=batch_size, epochs=num_epochs)

   inputs_x = []
   inputs_y = []
   for i in range(len(test_data_set)):
      inputs_x.append(test_data_set[i].arr_)
      inputs_x.append(test_data_set[i].flag_)

   predicted_price = regressor.predict(inputs_x)

我正在使用的库是Keras我是数据科学的新手,欢迎任何建议。

1个回答

改变第一层

regressor.add(LSTM(units=num_units, input_shape=(x_train.shape[1],x_train.shape[2])))

您需要有 2 个数字作为输入形状。

希望能帮到你。