Как найти логическую ошибку в коде прогнозирования временных рядов LSTM?Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Как найти логическую ошибку в коде прогнозирования временных рядов LSTM?

Сообщение Anonymous »

Я написал код для прогнозирования нагрузки в LSTM. Каждый раз, когда я запускаю код, я получаю совершенно другое значение ошибки. Оно не просто немного отличается. например, иногда 42, а в следующий раз 184.
Думаю, в моем коде есть логическая проблема.
Я пытаюсь найти проблему последние 3 дня но никаких улучшений.
Кто-нибудь может помочь мне с этой проблемой!
Вот мой код:
import tensorflow as tf
from tensorflow import keras
import pandas as pd
import numpy as np
df=pd.read_csv('https://raw.githubusercontent.com/Sumi2 ... hesis5.csv')
X0 = []
X1 = []
X2 = []
X3 = []
X4 = []
X5 = []
X6 = []
y = []

for i in range(0, df.shape[0]-24): #Load data is in 1 hour interval
X0.append(df.iloc[i:i+24, 0])
X1.append(df.iloc[i:i+24, 1])
X2.append(df.iloc[i:i+24, 2])
X3.append(df.iloc[i:i+24, 3])
X4.append(df.iloc[i:i+24, 4])
X5.append(df.iloc[i:i+24, 5])
X6.append(df.iloc[i:i+24, 6])
y.append(df.iloc[i+24, 4])

X0, X1, X2, X3, X4, X5, X6, y = np.array(X0), np.array(X1), np.array(X2), np.array(X3), np.array(X4), np.array(X5), np.array(X6), np.array(y)
y = np.reshape(y, (len(y),1))
#Normalize the data
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0,1))
X0 = scaler.fit_transform(X0)
X1 = scaler.fit_transform(X1)
X2 = scaler.fit_transform(X2)
X3 = scaler.fit_transform(X3)
X4 = scaler.fit_transform(X4)
X5 = scaler.fit_transform(X5)
X6 = scaler.fit_transform(X6)
y = scaler.fit_transform(y)
X = np.stack([X0, X1, X2, X3, X4, X5, X6], axis=2)
#Train set and test set
X_train, X_test = X[ :14616], X[14712:14736]
#Train set and test set
X_train, X_test = X[ :14616], X[14712:14736]
y_train, y_test = y[ :14616], y[14712:14736]

from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, LSTM, Dropout
from tensorflow.keras import optimizers
input_shape=([X_train.shape[1], X_train.shape[2]])

def create_lstm_model(input_shape):
model = Sequential()
model.add(LSTM(100, return_sequences=True, input_shape=input_shape))
model.add(LSTM(100, return_sequences=False, activation='relu'))
model.add(Dropout(0.2))
model.add(Dense(1, activation='relu'))

model.compile(optimizer='adam', loss='mean_squared_error', metrics=['mae'])
return model
lstm_model = create_lstm_model([X_train.shape[1], X_train.shape[2]])

lstm_model.fit(X_train, y_train, validation_split=0.2, epochs=5, batch_size=16) #I've run the codes different times from this line & got different errors.
lstm_predictions = lstm_model.predict(X_test)
y_test_inverse = scaler.inverse_transform(y_test)
lstm_predictions_inverse = scaler.inverse_transform(lstm_predictions)
from sklearn.metrics import mean_squared_error
lstm_error = mean_squared_error(y_test_inverse, lstm_predictions_inverse)
print(f'LSTM MSE: {lstm_error}')


Подробнее здесь: https://stackoverflow.com/questions/791 ... casting-co
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»