给出lstm时间预测序列的代码数据集为csv格式
以下是一个使用LSTM模型进行时间序列预测的代码示例,数据集为CSV格式。
import pandas as pd
import numpy as np
from sklearn.preprocessing import MinMaxScaler
from keras.models import Sequential
from keras.layers import LSTM, Dense
# 读取CSV数据集
df = pd.read_csv('dataset.csv')
# 只使用一列作为特征
data = df['feature_column'].values
# 数据预处理
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(data.reshape(-1, 1))
# 划分训练集和测试集
train_size = int(len(scaled_data) * 0.8)
test_size = len(scaled_data) - train_size
train_data = scaled_data[0:train_size, :]
test_data = scaled_data[train_size:len(scaled_data), :]
# 创建训练集和测试集
def create_dataset(dataset, look_back=1):
data_x, data_y = [], []
for i in range(len(dataset) - look_back - 1):
a = dataset[i:(i + look_back), 0]
data_x.append(a)
data_y.append(dataset[i + look_back, 0])
return np.array(data_x), np.array(data_y)
look_back = 10
train_x, train_y = create_dataset(train_data, look_back)
test_x, test_y = create_dataset(test_data, look_back)
# 将输入转换为LSTM的输入格式 [样本数,时间步,特征数]
train_x = np.reshape(train_x, (train_x.shape[0], train_x.shape[1], 1))
test_x = np.reshape(test_x, (test_x.shape[0], test_x.shape[1], 1))
# 创建和训练LSTM模型
model = Sequential()
model.add(LSTM(units=50, return_sequences=True, input_shape=(look_back, 1)))
model.add(LSTM(units=50))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(train_x, train_y, epochs=100, batch_size=32)
# 在训练集上进行预测
train_predict = model.predict(train_x)
train_predict = scaler.inverse_transform(train_predict)
train_y = scaler.inverse_transform([train_y])
# 在测试集上进行预测
test_predict = model.predict(test_x)
test_predict = scaler.inverse_transform(test_predict)
test_y = scaler.inverse_transform([test_y])
# 计算训练集和测试集的RMSE误差
train_rmse = np.sqrt(np.mean(np.power(train_y - train_predict, 2)))
test_rmse = np.sqrt(np.mean(np.power(test_y - test_predict, 2)))
print("训练集RMSE误差:", train_rmse)
print("测试集RMSE误差:", test_rmse)
请确保将代码中的'dataset.csv'替换为您的CSV数据集文件路径,并将'feature_column'替换为您要使用的特征列的名称。此外,您还可以根据需要调整LSTM模型的参数和训练参数
原文地址: https://www.cveoy.top/t/topic/hFNQ 著作权归作者所有。请勿转载和采集!