【问题标题】:How to use a train.csv , test.csv and ground_truth.csv in a machine learning model? (cross validation/ python)如何在机器学习模型中使用 train.csv 、 test.csv 和 ground_truth.csv? (交叉验证/ python)
【发布时间】:2016-10-11 16:32:07
【问题描述】:

到目前为止,我只有一个数据集 (df.csv)。到目前为止,我使用 20% 的验证大小和 .train_test_split 用于正常回归模型。

array = df.values
X = array[:,0:26]
Y = array[:,26]
validation_size = 0.20
seed = 7
X_train, X_validation, Y_train, Y_validation =
   cross_validation.train_test_split(X, Y,
   test_size=validation_size, random_state=seed)
num_folds = 10
num_instances = len(X_train)
seed = 7
scoring = 'mean_squared_error'

当我有三个单独的数据集(train.csv/test.csv/ground_truth.csv)时,我该如何处理?当然,一开始我使用的是 train.csv,然后是 test.csv,最后是 ground_truth。但是我应该如何在我的模型中实现这些不同的数据集呢?

【问题讨论】:

  • 您的问题没有真正的意义,因为在训练模型时没有理由将训练/测试/验证拆分为 csv 文件。我建议查看 sklearn 文档中的示例,然后发布回归的完整尝试。 scikit-learn.org/stable/modules/cross_validation.html
  • 感谢您的来信。但这正是我的问题,当我只有 1 个数据集时,我知道如何处理交叉验证。但就我而言,我有三个数据集。 train_data 与 run to failure 事件,test_data 没有失败事件(为此我需要预测)和 ground_throuth_data 定义剩余生命。

标签: python numpy machine-learning scipy cross-validation


【解决方案1】:

当您执行交叉验证时,训练数据和测试数据本质上是相同的数据集,它们以不同的方式拆分,以防止过度拟合。折叠的数量表示集合被拆分的不同方式。

例如,5 折交叉验证将训练集分成 5 份,每次其中 4 份用于训练,1 份用于测试。所以在你的情况下,你有以下选择:

要么仅在训练集上执行交叉验证,然后检查测试集和基本事实(仅在训练集上进行拟合,因此如果正确完成,测试和基本事实的准确性应该相似)或结合针对更大且可能更具代表性的数据集进行训练和测试,然后检查基本事实。

【讨论】:

  • “要么只对训练集执行交叉验证,然后检查测试集 [...]” 这就是重点。我在这个领域真的很新。如果您有一个经过训练的模型(已经执行了交叉验证等)并且想要在第二个数据集(test.csv)上对其进行测试,它会是什么样子?是否有模板或标准方法,例如我上面的代码?
  • 取决于您使用的框架/算法。从您发布的代码中,我假设您想使用 sklearn 的线性回归。您可以查看官方文档scikit-learn.org/stable/modules/generated/… 并搜索示例。您发布的代码仅用于分割训练集。
猜你喜欢
  • 2021-01-07
  • 1970-01-01
  • 2019-12-02
  • 2021-04-15
  • 1970-01-01
  • 2020-09-18
  • 2016-06-06
  • 2014-07-16
  • 2015-08-06
相关资源
最近更新 更多