以下是一个使用 LSTM 模型进行时间序列预测的代码示例,数据集为 CSV 格式。\n\npython\nimport pandas as pd\nimport numpy as np\nfrom sklearn.preprocessing import MinMaxScaler\nfrom keras.models import Sequential\nfrom keras.layers import LSTM, Dense\n\n# 读取 CSV 数据集\ndf = pd.read_csv('dataset.csv')\n\n# 只使用一列作为特征\ndata = df['feature_column'].values\n\n# 数据预处理\nscaler = MinMaxScaler(feature_range=(0, 1))\nscaled_data = scaler.fit_transform(data.reshape(-1, 1))\n\n# 划分训练集和测试集\ntrain_size = int(len(scaled_data) * 0.8)\ntest_size = len(scaled_data) - train_size\ntrain_data = scaled_data[0:train_size, :]\ntest_data = scaled_data[train_size:len(scaled_data), :]\n\n# 创建训练集和测试集\ndef create_dataset(dataset, look_back=1):\n data_x, data_y = [], []\n for i in range(len(dataset) - look_back - 1):\n a = dataset[i:(i + look_back), 0]\n data_x.append(a)\n data_y.append(dataset[i + look_back, 0])\n return np.array(data_x), np.array(data_y)\n\nlook_back = 10\ntrain_x, train_y = create_dataset(train_data, look_back)\ntest_x, test_y = create_dataset(test_data, look_back)\n\n# 将输入转换为 LSTM 的输入格式 [样本数,时间步,特征数]\ntrain_x = np.reshape(train_x, (train_x.shape[0], train_x.shape[1], 1))\ntest_x = np.reshape(test_x, (test_x.shape[0], test_x.shape[1], 1))\n\n# 创建和训练 LSTM 模型\nmodel = Sequential()\nmodel.add(LSTM(units=50, return_sequences=True, input_shape=(look_back, 1)))\nmodel.add(LSTM(units=50))\nmodel.add(Dense(1))\nmodel.compile(loss='mean_squared_error', optimizer='adam')\nmodel.fit(train_x, train_y, epochs=100, batch_size=32)\n\n# 在训练集上进行预测\ntrain_predict = model.predict(train_x)\ntrain_predict = scaler.inverse_transform(train_predict)\ntrain_y = scaler.inverse_transform([train_y])\n\n# 在测试集上进行预测\ntest_predict = model.predict(test_x)\ntest_predict = scaler.inverse_transform(test_predict)\ntest_y = scaler.inverse_transform([test_y])\n\n# 计算训练集和测试集的 RMSE 误差\ntrain_rmse = np.sqrt(np.mean(np.power(train_y - train_predict, 2)))\ntest_rmse = np.sqrt(np.mean(np.power(test_y - test_predict, 2)))\n\nprint("训练集 RMSE 误差:", train_rmse)\nprint("测试集 RMSE 误差:", test_rmse)\n\n\n请确保将代码中的 'dataset.csv' 替换为您的 CSV 数据集文件路径,并将 'feature_column' 替换为您要使用的特征列的名称。此外,您还可以根据需要调整 LSTM 模型的参数和训练参数。


原文地址: http://www.cveoy.top/t/topic/poTO 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录