sklearn learning_curve和StandardScaler

时间:2018-09-12 19:22:48

标签: python scikit-learn

我想知道sklearn.model_selection learning_curve是否可以使用sklearn.preprocessing StandardScaler。我已经研究了实现,但是我的技能水平还不足以得出结论。所有使用learning_curve的教程都将整个数据集传递给learning_curve,learning_curve会将数据分为训练和测试集。

所有估计器的所有教程都要求您将数据分为训练和测试,然后仅缩放训练数据,并使用训练数据标度转换测试数据。哪个完全了解。

在将其传递给learning_curve之前,我应该缩放整个数据集。我确实知道learning_curve将使用k折或其他交叉验证方法,所以它是否重要,因为交叉验证会平均所有结果?

谢谢

1 个答案:

答案 0 :(得分:-1)

learning_curve不能单独实现StandardScaler。您可以创建一个Pipeline作为估计量,第一步是StandardScaler,然后将您要用作下一步的任何估计量。这样,当您在每个learning_curve迭代期间调用cv时,您正在对训练倍数上的定标器和估计量进行训练,并且在每次迭代中针对测试倍数对性能进行了验证。

在调用learning_curve之前,您不希望缩放整个数据集。原因是在训练模型之前缩放整个集合会引入偏差,因为您使用的数据将用于验证训练模型,这可能会导致过度拟合。