df = df_1.iloc[0:200000, :]
# Train-Test Split (keeping all columns)
train, test = df.loc[df['index'] <= 160000], df.loc[df['index'] > 160000]
# Create a StandardScaler object and fit on the first 21 columns of the training data
scaler = StandardScaler()
scaler = scaler.fit(train.iloc[:, 0:21])
# Transform the first 21 columns of both training and test data
train.iloc[:, :21] = scaler.transform(train.iloc[:, :21])
test.iloc[:, :21] = scaler.transform(test.iloc[:, :21])
#print(train.iloc[:,:21])
seq_size = 3
def to_sequences(x, y, seq_size):
x_values = []
y_values = []
for i in range(len(x) - seq_size):
x_values.append(x.iloc[i:(i + seq_size), :21].values)
y_values.append(x.iloc[(i + seq_size), :21].values)
return np.array(x_values), np.array(y_values)
trainX, trainY = to_sequences(train[["Fp1", "Fp2", "F3", "F4", "F7", "F8", "Fz", "C3", "C4", "Cz", "T3", "T5", "T4", "T6", "P3", "P4", "Pz", "O1", "O2", "ECG", "Resp"]], train['y'], seq_size)
testX, testY = to_sequences(test[["Fp1", "Fp2", "F3", "F4", "F7", "F8", "Fz", "C3", "C4", "Cz", "T3", "T5", "T4", "T6", "P3", "P4", "Pz", "O1", "O2", "ECG", "Resp"]], test['y'], seq_size)
model = Sequential()
model.add(LSTM(128, input_shape=(trainX.shape[1], trainX.shape[2])))
model.add(Dropout(rate=0.3))
model.add(RepeatVector(trainX.shape[1]))
model.add(LSTM(128, return_sequences=True))
model.[![enter image description here][1]][1]add(Dropout(rate=0.2))
model.add(TimeDistributed(Dense(trainX.shape[2]))) # This output same shape as the input
model.add(TimeDistributed(Reshape((1, 21))))
model.compile(optimizer='adam', loss='mean_absolute_error')
model.summary()
Asked
Active
Viewed 20 times
1
Oxbowerce
- 8,522
- 2
- 10
- 26
user731995
- 11
- 2