У меня проблема с этим кодом. Похоже, что прогноз не работает без доступа к тестовым данным. Обычно прогноз следует выполнять независимо от тестовых данных. Я тестировал его на тестовых данных ранее, и результат показался мне слишком хорошим. По этой причине я решил манипулировать тестовыми данными в файле CSV. Они не соответствуют реальным значениям. Я думал, что если прогноз будет работать совершенно независимо от тестовых данных, он не изменится. К сожалению, прогноз скорректирован именно с измененными тестовыми данными с помощью этого измененного файла. Это показывает мне, что код не может быть правильным.
У меня проблема с этим кодом. Похоже, что прогноз не работает без доступа к тестовым данным. Обычно прогноз следует выполнять независимо от тестовых данных. Я тестировал его на тестовых данных ранее, и результат показался мне слишком хорошим. По этой причине я решил манипулировать тестовыми данными в файле CSV. Они не соответствуют реальным значениям. Я думал, что если прогноз будет работать совершенно независимо от тестовых данных, он не изменится. К сожалению, прогноз скорректирован именно с измененными тестовыми данными с помощью этого измененного файла. Это показывает мне, что код не может быть правильным. [code]import pandas as pd import matplotlib.pyplot as plt from sklearn.preprocessing import MinMaxScaler from sklearn.metrics import mean_squared_error, mean_absolute_error from keras.models import Sequential from keras.layers import LSTM, Dropout, Dense from keras.optimizers import Adam import numpy as np
# Prepare training data x_train, y_train = [], [] for i in range(60, len(train_data)): x_train.append(train_data[i-60:i, 0]) y_train.append(train_data[i, 0])
# Prepare test data inputs_test = np.concatenate((val_data[-60:], test_data), axis=0) x_test, y_test = [], [] for i in range(60, len(inputs_test)): x_test.append(inputs_test[i-60:i, 0]) y_test.append(inputs_test[i, 0])
# Calculate RMSE for training and validation train_rmse = np.sqrt(mean_squared_error(train_actual, train_predictions)) val_rmse = np.sqrt(mean_squared_error(val_actual[:len(val_predictions)], val_predictions))
# Title with RMSE plt.title(f'Training and Validation Data with Predictions for Apple 01.01.2004 – 26.05.2006 \nTrain RMSE: {train_rmse:.2f}, Val RMSE: {val_rmse:.2f}') plt.legend() plt.grid() plt.show()
# Visualization plt.figure(figsize=(14, 7)) plt.plot(df.index[:train_size], df['Price'][:train_size], label="Training Data", color="blue") plt.plot(df.index[train_size:train_size + val_size], df['Price'][train_size:train_size + val_size], label="Validation Data", color="purple") plt.plot(df.index[train_size + val_size:], df['Price'][train_size + val_size:], label="Test Data", color="green") plt.plot(df.index[60:train_size], train_predictions, label="Training Prediction", color="orange") plt.plot(df.index[train_size:train_size + val_size], val_predictions, label="Validation Prediction", color="brown") plt.plot(df.index[train_size + val_size:], test_predictions, label="Prediction on Unseen Test Data", color="red") plt.xlabel('Date') plt.ylabel('Closing Price') plt.title(f'LSTM Prediction - AAPL 01.01.2004 - 31.12.2006 \nTrain RMSE: {train_rmse:.2f}, Val RMSE: {val_rmse:.2f}, Test RMSE: {test_rmse:.2f}') plt.legend() plt.grid() plt.show() [/code] Буду очень благодарен за любую поддержку. Не могли бы вы объяснить, в чем может быть проблема? Я пишу об этом магистерскую диссертацию.