小样本时间序列预测代码
时间: 2023-09-17 15:12:45 浏览: 56
以下是一个使用LSTM进行小样本时间序列预测的代码示例:
```python
import numpy as np
from keras.models import Sequential
from keras.layers import LSTM, Dense
# 创建数据集
data = np.arange(1, 51, 1)
data = data.reshape((len(data), 1))
# 将数据集分成训练集和测试集
train_size = int(len(data) * 0.67)
train_data, test_data = data[0:train_size,:], data[train_size:len(data),:]
# 将数据集转换为适合LSTM的格式
def create_dataset(dataset, look_back=1):
X, Y = [], []
for i in range(len(dataset)-look_back-1):
a = dataset[i:(i+look_back), 0]
X.append(a)
Y.append(dataset[i + look_back, 0])
return np.array(X), np.array(Y)
look_back = 3
train_X, train_Y = create_dataset(train_data, look_back)
test_X, test_Y = create_dataset(test_data, look_back)
# 创建和拟合LSTM模型
model = Sequential()
model.add(LSTM(4, input_shape=(1, look_back)))
model.add(Dense(1))
model.compile(loss='mean_squared_error', optimizer='adam')
model.fit(train_X.reshape(train_X.shape[0], 1, look_back), train_Y, epochs=100, batch_size=1, verbose=2)
# 使用模型进行预测
train_predict = model.predict(train_X.reshape(train_X.shape[0], 1, look_back))
test_predict = model.predict(test_X.reshape(test_X.shape[0], 1, look_back))
# 反向转换预测值
train_predict = train_predict.reshape(train_predict.shape[0], 1)
test_predict = test_predict.reshape(test_predict.shape[0], 1)
# 评估模型
train_score = model.evaluate(train_X.reshape(train_X.shape[0], 1, look_back), train_Y, verbose=0)
test_score = model.evaluate(test_X.reshape(test_X.shape[0], 1, look_back), test_Y, verbose=0)
print('Train Score: {:.2f} MSE ({:.2f} RMSE)'.format(train_score, np.sqrt(train_score)))
print('Test Score: {:.2f} MSE ({:.2f} RMSE)'.format(test_score, np.sqrt(test_score)))
```
这个代码示例中,我们首先创建了一个数据集,其中包含从1到50的数字。然后,我们将数据集分成了训练集和测试集。接下来,我们将数据集转换为适合LSTM的格式,并创建了一个LSTM模型。我们使用训练集对模型进行拟合,并使用模型进行预测。最后,我们评估了模型的性能。注意,在这个例子中,我们使用了非常小的样本数量,只有50个数据点。在实际应用中,我们可能需要更多的数据点来获得更准确的预测结果。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)