Python 使用sci工具包中的训练/测试数据学习曲线,而不是交叉验证

Python 使用sci工具包中的训练/测试数据学习曲线,而不是交叉验证,python,machine-learning,scipy,scikit-learn,Python,Machine Learning,Scipy,Scikit Learn,我有一个单独的“我的训练和测试数据”(从不同的CSV加载到不同的pandas数据框中),我想用这个训练和测试数据绘制学习曲线,而不是使用交叉验证从训练集本身生成的训练和测试数据(这似乎是学习曲线工作的通常方式) 看起来scikit期望您的测试和训练数据出现在同一个数据帧中,但这样分类器也会学习测试数据,这不是我想要的 我怎样才能着手解决这个问题?我是sci工具包的新手。您需要将培训和测试数据分开(至少在代码中的单独变量中)。然后可以在训练集上应用。这样,您可以在不使用测试集的情况下优化实验(以避

我有一个单独的“我的训练和测试数据”(从不同的CSV加载到不同的pandas数据框中),我想用这个训练和测试数据绘制学习曲线,而不是使用交叉验证从训练集本身生成的训练和测试数据(这似乎是学习曲线工作的通常方式)

看起来scikit期望您的测试和训练数据出现在同一个数据帧中,但这样分类器也会学习测试数据,这不是我想要的


我怎样才能着手解决这个问题?我是sci工具包的新手。

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

为了验证您在测试集上的表现,scikit learn提供了一个对照测试集进行评估的工具。

更为棘手。它允许您定义训练集和测试集的训练单元大小,然后对所有训练集和测试集运行交叉验证(参数cv,默认为3倍交叉验证)

不确定“从训练集本身生成”是什么意思。如果不将测试集传递给函数,它将不会这样做。恐怕你不能使用内置的sklearn函数来完成你的要求,所以你需要自己编写它。你对“自己写”的解决方案感兴趣吗?