def data_split(sequence, n_timestamp): subset = [] for i in range(len(sequence)): end_ix = i + n_timestamp if end_ix > len(sequence) - 1: break seq = sequence[i:end_ix+1].reshape(n_timestamp+1,) subset.append(seq) subset = np.array(subset, dtype='float32') return subset train_data = data_split(training_set_scaled, n_timestamp) # train_data = train_data.reshape(train_data.shape[0], train_data.shape[1]) test_data = data_split(testing_set_scaled, n_timestamp) # test_data = test_data.reshape(test_data.shape[0], test_data.shape[1]) print(train_data.shape, test_data.shape) print(train_data[3492])
时间: 2023-11-30 16:02:25 浏览: 33
这段代码中,首先调用了上面定义的data_split函数将缩放后的训练集和测试集转换成监督学习问题的输入和输出特征。接下来,将train_data和test_data打印出来以检查它们的形状是否正确。最后一行代码打印出了train_data中第3492个样本,以便您检查数据是否正确。如果您需要查看其他样本,可以将train_data中的索引号替换为其他数字即可。请注意,由于train_data和test_data中的每个样本包含n_timestamp+1个值,因此它们的第二维应该是n_timestamp+1。请问您还有其他问题吗?
相关问题
def data_split(sequence, n_timestamp): X = [] y = [] for i in range(len(sequence)): end_ix = i + n_timestamp
这是一个用于将时间序列数据划分为输入序列和目标值序列的函数。其中,输入参数sequence是原始的时间序列数据,n_timestamp是每个输入序列的时间步数。函数通过遍历原始时间序列数据,从i开始,取i到i+n_timestamp的数据作为输入序列X,取i+n_timestamp的数据作为目标值序列y。最终将划分好的X和y存储到对应的列表中,并返回这两个列表。
def data_split(sequence, n_timestamp): subset = [] for i in range(len(sequence)): end_ix = i + n_timestamp if end_ix > len(sequence) - 1: break seq = sequence[i:end_ix+1].reshape(n_timestamp+1,) subset.append(seq) subset = np.array(subset, dtype='float32') return subset train_data = data_split(training_set_scaled, n_timestamp)
这段代码中,定义了一个名为data_split的函数,用于将时间序列数据转换为监督学习问题。此函数的输入参数包括原始的时间序列数据sequence和每个输入序列的时间步数n_timestamp。函数的输出是一个2维NumPy数组,其中每行包含n_timestamp+1个值:前n_timestamp个值是输入特征,最后一个值是输出特征。这个函数的实现方式是通过循环遍历原始时间序列数据,将每个序列切分成长度为n_timestamp+1的子序列,最后将所有子序列组合成一个2维数组。最后一行代码使用data_split函数将训练集缩放后的特征转换为监督学习问题中的输入和输出特征。请问您还有其他问题吗?