我是Python的ML新手,我第一次尝试通过一个教程。在那个教程中,有几行代码我很难理解它们是如何相互作用的。在
第一个代码是拆分发生的数据,如下所示:
train_x, val_x, train_y, val_y = train_test_split(X, y,test_size=0.3)
我的第一个问题:为什么我们使用验证数据而不是测试数据?为什么不全部训练,val和测试?使用哪种组合的用例是什么?在
下一节将详细介绍ML模型和preditcs。在
^{pr2}$我的第二个问题:对于模型.预测()声明,为什么我们要把val_x放在那里?我们不想预测价值吗?在
额外的问题:而且,在许多教程中,我看到了如何应用标准缩放器。但是,在本教程中,它并不是这样出现的,或者其他函数是否已经扩展了它而不必显式地声明它?请帮忙。在
1)验证集通常用于帮助您相应地调整超参数。因为您可以根据模型在验证集上的性能对其进行微调,所以模型可能会对验证数据稍有偏差,即使它没有直接对这些数据进行训练,这就是为什么我们将其与测试集分开。一旦根据验证集将模型调整到您喜欢的程度,就可以在测试集中对其进行评估,以查看它的泛化程度。在
2)调用
model.predict(val_x)
将根据给定的x值返回预测的y值。然后可以使用一些损失函数将这些预测值与val_y
进行比较,以评估模型在验证集上的性能。在Q1.1:为什么我们使用验证数据而不是测试数据?(在上述场景中)
Q1.2:为什么不是全部、训练、val和测试?(为什么分开?)
我们所有的机器学习算法都将用于一些实际数据(参考实际测试数据)。然而,在设计出一个算法之后,我们要“测试”它的性能,它的准确度,等等
但是我们有什么?列车数据!因此,我们巧妙地将它的一部分(拆分)放在一边,以便以后测试该算法。一旦模型准备好,测试数据用于评估性能。在
^{pr2}$问题2。:对于模型.预测()声明,为什么我们要把val_x放在那里?我们不想预测价值吗?在
我们想要预测
val_y
,但是模型需要val_x
来预测y。这正是我们作为参数传递给predict函数的内容。在我说},因为两者并不完全相似。它们有多大的不同?这就是分数。在
predicted_y
而不是{一些术语
Q1.3:使用哪个组合的用例是什么?在
额外问题:在许多教程中,我看到了如何应用标准缩放器。但是,在本教程中,它并不是这样出现的,或者其他函数是否已经扩展了它而不必显式地声明它?在
相关问题 更多 >
编程相关推荐