-2
from sklearn.model_selection import train_test_split

我对 sklearn 的 train_test_split 函数有疑问。首先,我们为什么要拆分数据???我们是否从中获得了测试数据。我们是否只是将数据切成两半并使用其中一些来训练和一些来测试?比没有意义,因为数据已经被填充。如果它被填满,那么我们现在预测什么?我需要帮助!

4

2 回答 2

1

首先,我们为什么要拆分数据???

我们拆分数据以隔离其中的一部分以进行验证。使用非隔离部分拟合算法并使用算法再次测试隔离部分。

我们是否从中获得了测试数据。

测试数据实际上是原始数据集的一部分。

我们只是把数据切成两半吗

我们通常砍在 20-40% 的大关。

如果它被填满了,那么我们现在预测什么??*

您实际上并没有试图直接预测结果。您正在训练算法以适应训练集并使用测试集来查看算法的准确度。

于 2021-12-17T16:00:25.960 回答
0

您的原始数据集应拆分为训练和测试数据。例如,80% 的数据可用于训练,20% 可用于测试。数据被拆分,以便有数据可供模型评估,以查看模型在看不见的数据上的执行情况。

  • 训练:此数据用于构建模型。例如在线性回归模型中找到最优系数;或使用 CART 算法创建决策树。

  • 测试:此数据用于查看模型在看不见的数据上的表现,就像在现实世界中一样。在您想要测试您的模型以评估性能之前,应该完全看不到这些数据。

关于验证数据的额外说明:
为了调整您的模型(例如,为决策树找到最佳的max_depth值),还应将训练数据按比例分配到训练和验证数据中。K-Folds 交叉验证可以在这里使用。模型应该在训练数据上进行训练并在验证数据上进行评估。这是通过交叉验证多次执行的。
然后可以在每个折叠上评估结果(例如 MSE、F1 等)并用于调整超参数。通过使用交叉验证来调整超参数,这可以确保模型不会过度拟合测试数据。
调整模型后,就可以将其应用于测试数据。

于 2018-03-03T16:02:27.273 回答