Vertopal.com Untitled27
Vertopal.com Untitled27
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import StandardScaler
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM, Input
from tensorflow.keras.optimizers import Adam
import matplotlib.pyplot as plt
# Load dataset
df = pd.read_excel("dataset_28112024new.xlsx")
# Train/test split
X_train, X_test, y_train, y_test = train_test_split(X, y,
test_size=0.2, random_state=42)
# Normalize data
scaler = StandardScaler()
X_train_scaled = scaler.fit_transform(X_train)
X_test_scaled = scaler.transform(X_test)
rnn_model = Sequential([
LSTM(64, input_shape=(1, X_train_scaled.shape[1]),
return_sequences=False),
Dense(32, activation='relu'),
Dense(1)
])
rnn_model.compile(optimizer=Adam(0.001), loss='mse')
rnn_history = rnn_model.fit(X_train_rnn, y_train, epochs=50,
batch_size=16, validation_split=0.1, verbose=0)
# Evaluate models
dnn_mse = dnn_model.evaluate(X_test_scaled, y_test, verbose=0)
rnn_mse = rnn_model.evaluate(X_test_rnn, y_test, verbose=0)
C:\Users\21031\AppData\Local\Programs\Python\Python312\Lib\site-
packages\keras\src\layers\rnn\rnn.py:204: UserWarning: Do not pass an
`input_shape`/`input_dim` argument to a layer. When using Sequential
models, prefer using an `Input(shape)` object as the first layer in
the model instead.
super().__init__(**kwargs)