在sci-kit中使用训练/测试数据学习曲线而不是交叉验证

时间:2015-09-19 18:48:25

标签: python machine-learning scipy scikit-learn

我将我的训练和测试数据分开(从不同的CSV加载到不同的pandas数据帧中),我想用这个训练和测试数据绘制学习曲线,而不是使用交叉验证训练和测试训练集自身生成的测试数据(这似乎是learning_curve工作的常用方式)。

似乎scikit希望您的测试和训练数据存在于同一个Dataframe中,但这样分类器也会学习测试数据,这不是我想要的。

我该如何解决这个问题?我是sci-kit的新手。

2 个答案:

答案 0 :(得分:0)

您需要将训练和测试数据分开(至少在代码中的单独变量中)。然后可以在训练集上应用learning curve。这样,您可以在不使用测试集的情况下优化实验(以避免过度拟合)。

为了验证您在测试集上的表现如何,scikit-learn提供validation curve评估测试集。

答案 1 :(得分:0)

Scikit-Learn更棘手。它允许您定义train和测试集的train_sizes,然后对所有这些进行交叉验证(参数cv,默认为3倍交叉验证)。