【问题标题】:Training data has more columns than test data训练数据的列多于测试数据
【发布时间】:2019-04-06 09:32:53
【问题描述】:

我有 16 列的训练数据和 14 列的测试数据,训练数据的最后两个目标列在测试数据中不存在(这非常重要)。并且已经给出了测试数据并且也给出了训练数据。 我正在考虑的方法是从组合训练数据和测试数据开始,然后将数据拆分为X_TrainY_TrainX_TestY_Test。这是一个好方法还是有其他方法可以开始?

我还没有编写代码。但在我开始之前,我需要一些建议。

谢谢

【问题讨论】:

  • 如果你已经给定了训练和测试集,为什么还要合并和拆分它们?
  • 恐怕我没有测试目标列,如果我使用knn,我需要为测试数据指定目标列吗?
  • 按原样,问题与python 无关 - 请不要向不相关的标签发送垃圾邮件(已删除)。

标签: machine-learning classification training-data


【解决方案1】:

好吧,我不知道您要解决什么任务,但您似乎想在训练数据集上训练模型,然后预测测试数据集的目标(这就是您没有这些目标的原因)。

如果您想评估您的模型在训练阶段的表现如何,您可以使用test_train_split(X_train,y_train) 将您的训练数据拆分为一个真实的训练集和一个验证集。如果验证准确度足够好,您可以使用经过训练的模型并在其上调用 model.predict(X_test)

【讨论】:

  • 是的,我也这样做了。我想知道如何使用 X_test 因为我已经从 train_test 拆分中获得了 X_test,所以我应该什么时候使用新的测试数据?我得到了 0.90% 的好分数,然后我不知道应该如何使用新的测试数据?
【解决方案2】:

为了评估您的模型,您可以将训练集分为训练集和测试集(使用 20% 进行测试)并使用交叉验证。

如果您的测试集不包含目标变量,则它对评估毫无用处。我在想这是你的任务还是比赛?因为他们总是给你一个测试集,并为自己保留目标来评估你

【讨论】:

  • 是的,你是对的。我所做的是对训练数据进行训练和测试拆分。然后我在相同的训练数据上进行了测试,并给了我一个很好的分数。我不确定我应该如何使用新的测试数据来预测新的列。
  • @KSp 你不能使用新的测试数据来评估你的模型。如果你对你的模型训练有足够的信心,那么你的模型应该在新的测试数据上也能很好地工作。如果你正在为一些在线黑客马拉松做这件事,那么你的排行榜分数将反映模型的实际表现。否则,您可以使用您的数据/业务知识来判断最终结果。
  • 我需要预测测试数据的那些目标列。所以我不能停止我到目前为止所做的事情。到目前为止,我在 X_test 上进行了预测并获得了 0.91 的分数,我需要了解如何使用我必须填充这些目标列的测试数据。
  • 好的!无论如何,我有一个想法:) 所以我会试试看。
猜你喜欢
  • 2021-07-19
  • 2021-02-28
  • 2021-03-14
  • 1970-01-01
  • 2019-07-06
  • 2017-02-20
  • 1970-01-01
  • 1970-01-01
  • 2021-12-08
相关资源
最近更新 更多