假设有某只股票一段时间内的每日收盘价如下表所示:
日期 | 收盘价(单位:元) |
---|---|
2024-01-01 | 100.0 |
2024-01-02 | 102.0 |
2024-01-03 | 105.0 |
2024-01-04 | 103.0 |
2024-01-05 | 108.0 |
2024-01-06 | 110.0 |
2024-01-07 | 109.0 |
2024-01-08 | 112.0 |
2024-01-09 | 115.0 |
2024-01-10 | 113.0 |
import numpy as np
import matplotlib.pyplot as plt
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import LSTM, Dense
from sklearn.preprocessing import MinMaxScaler
import pandas as pd
# 假设这里的data是上面示例中的股票收盘价数据,将其转换为numpy数组并调整形状为二维(符合模型输入要求)
data = np.array([100.0, 102.0, 105.0, 103.0, 108.0, 110.0, 109.0, 112.0, 115.0, 113.0]).reshape(-1, 1)
# 数据归一化,使用MinMaxScaler将数据归一化到0-1区间,这有助于模型训练
scaler = MinMaxScaler(feature_range=(0, 1))
scaled_data = scaler.fit_transform(data)
# 划分训练集和测试集,这里简单按照前80%作为训练集,后20%作为测试集
train_size = int(len(scaled_data) * 0.8)
train_data = scal