def load_data(stock, seq_len):#输入data表格 amount_of_features = len(stock.columns)#有几列 data = stock.values #pd.DataFrame(stock) 讲表格转化为矩阵 sequence_length = seq_len + 1#序列长度5+1 result = [] for index in range(len(data) - sequence_length):#循环170-5次 result.append(data[index: index + sequence_length])#第i行到i+5行 result = np.array(result)#得到161个样本,样本形式为6天*3特征 row = round(0.9 * result.shape[0])#划分训练集测试集 train = result[:int(row), :] x_train = train[:, :-1] y_train = train[:, -1][:,-1] x_test = result[int(row):, :-1] y_test = result[int(row):, -1][:,-1] #reshape成 5天*3特征 x_train = np.reshape(x_train, (x_train.shape[0], x_train.shape[1], amount_of_features)) x_test = np.reshape(x_test, (x_test.shape[0], x_test.shape[1], amount_of_features)) return [x_train, y_train, x_test, y_test]
时间: 2024-01-23 14:03:20 浏览: 129
seq_info.rar_*seq_info_SEQ_INFO
这段代码实现了一个将时间序列数据转换为深度学习模型所需格式的函数。具体来说,该函数的输入是一个pandas.DataFrame类型的数据集和一个序列长度,表示每个输入序列的长度。函数的输出是四个NumPy数组,分别是训练集输入、训练集输出、测试集输入和测试集输出。
该函数的实现步骤如下:
1. 计算数据集中的特征数量(即数据集中有多少列)。
2. 将数据集转换为NumPy数组。
3. 根据给定的序列长度,将数据集划分为多个序列。每个序列由连续的数据行组成,其长度为序列长度加一。
4. 将这些序列存储为一个列表,并将其转换为NumPy数组。这个数组的形状是(样本数量,序列长度,特征数量)。
5. 将数据集划分为训练集和测试集。划分的比例是90%训练集和10%测试集。
6. 将训练集输入和测试集输入重新调整为(样本数量,序列长度,特征数量)的形状。
7. 将训练集输出和测试集输出设置为最后一个时间步的数据。也就是说,训练集输出是训练集输入中最后一个时间步的数据,测试集输出是测试集输入中最后一个时间步的数据。
8. 返回四个NumPy数组,分别是训练集输入、训练集输出、测试集输入和测试集输出。
阅读全文