【问题标题】:I need help understanding train_test_split?我需要帮助了解 train_test_split?
【发布时间】:2018-08-11 06:12:10
【问题描述】:
from sklearn.model_selection import train_test_split

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

【问题讨论】:

  • 谷歌“过拟合”
  • 我不明白?
  • 查找“过度拟合”,这将回答您的问题。
  • 那么,测试数据是否已经填满了列?
  • 如果是,那我们为什么要使用测试数据呢?答案已经存在

标签: python machine-learning scikit-learn train-test-split


【解决方案1】:

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

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

  • 测试:此数据用于查看模型如何处理看不见的数据,就像在现实世界中一样。该数据应 在你想测试你的模型之前完全看不见 评估绩效。

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

【讨论】:

    【解决方案2】:

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

    为了验证目的,我们拆分数据以隔离其中的一部分。用非隔离部分拟合算法,再用算法测试隔离部分。

    我们是从哪里获取测试数据的。

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

    我们只是将数据切成两半

    我们通常会在 20-40% 的范围内砍掉。

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

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

    【讨论】:

      猜你喜欢
      • 2017-06-19
      • 2016-05-03
      • 1970-01-01
      • 2021-01-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-12
      相关资源
      最近更新 更多