为什么测试曲线从头开始而不是从火车曲线的末尾开始?

问题描述

# 5-split into train and test sets
train_size = int(len(dataset) * 0.75)
test_size = len(dataset) - train_size
train,test = dataset[0:train_size,:],dataset[train_size:len(dataset),:]
print(len(train),len(test))

# Plot train and test data
plt.figure(figsize = (15,10))
plt.plot(train)
plt.plot(test)
plt.xlabel('Vehicle')
plt.ylabel('Sender Speed')
plt.legend(['Train set','Test set'],loc='upper right')

print('Dimension of train data: ',train.shape)
print('Dimension of test data: ',test.shape)

enter image description here

为什么测试曲线从头开始而不是从训练曲线的末尾开始?

解决方法

上面的源代码将数据集分为两组:训练集和测试集。训练集是数据的 75%。测试集为 25%。 训练集和测试集必须彼此分开,否则您将使用测试数据进行训练,结果可能会过度拟合数据。 为测试集选择数据的前 25%、最后 25% 还是其他 25% 是任意的。 (实际上测试集的大小有些随意。)在上面的源代码中,测试集是从总数据集的末尾选择的。需要注意的是,如果数据集是有序的,这可能会导致问题。源代码可以通过在选择前随机重新排序数据来改进。训练和测试可以通过在训练前整理(清理)数据以及调整大小和可视化来改进。