LSTM天气预测模型代码
时间: 2023-11-13 09:12:37 浏览: 138
以下是一个简单的LSTM天气预测模型的代码示例:
```python
import numpy as np
import pandas as pd
from keras.models import Sequential
from keras.layers import Dense, LSTM
# 读取数据
data = pd.read_csv('weather.csv')
# 数据预处理
data['date'] = pd.to_datetime(data['date'])
data.set_index('date', inplace=True)
data.drop(['city'], axis=1, inplace=True)
# 划分训练集和测试集
train_data = data[:'2019-12-31']
test_data = data['2020-01-01':]
# 归一化
from sklearn.preprocessing import MinMaxScaler
scaler = MinMaxScaler(feature_range=(0, 1))
train_data = scaler.fit_transform(train_data)
test_data = scaler.transform(test_data)
# 准备数据
def create_dataset(dataset, look_back=1):
X, Y = [], []
for i in range(len(dataset)-look_back-1):
a = dataset[i:(i+look_back)]
X.append(a)
Y.append(dataset[i+look_back])
return np.array(X), np.array(Y)
look_back = 30
train_X, train_Y = create_dataset(train_data, look_back)
test_X, test_Y = create_dataset(test_data, look_back)
# 创建模型
model = Sequential()
model.add(LSTM(4, input_shape=(look_back, 1)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
# 训练模型
model.fit(train_X, train_Y, epochs=100, batch_size=1, verbose=2)
# 预测
train_predict = model.predict(train_X)
test_predict = model.predict(test_X)
# 反归一化
train_predict = scaler.inverse_transform(train_predict)
train_Y = scaler.inverse_transform(train_Y)
test_predict = scaler.inverse_transform(test_predict)
test_Y = scaler.inverse_transform(test_Y)
# 评估模型
from sklearn.metrics import mean_squared_error
train_rmse = np.sqrt(mean_squared_error(train_Y, train_predict))
test_rmse = np.sqrt(mean_squared_error(test_Y, test_predict))
print("Train RMSE: {:.2f}".format(train_rmse))
print("Test RMSE: {:.2f}".format(test_rmse))
```
注意,这只是一个简单的示例,你需要根据你的具体数据和需求进行修改。
阅读全文
相关推荐


















