我想知道sklearn.model_selection learning_curve是否可以使用sklearn.preprocessing StandardScaler。我已经研究了实现,但是我的技能水平还不足以得出结论。所有使用learning_curve的教程都将整个数据集传递给learning_curve,learning_curve会将数据分为训练和测试集。
所有估计器的所有教程都要求您将数据分为训练和测试,然后仅缩放训练数据,并使用训练数据标度转换测试数据。哪个完全了解。
在将其传递给learning_curve之前,我应该缩放整个数据集。我确实知道learning_curve将使用k折或其他交叉验证方法,所以它是否重要,因为交叉验证会平均所有结果?
谢谢
答案 0 :(得分:-1)
learning_curve
不能单独实现StandardScaler
。您可以创建一个Pipeline
作为估计量,第一步是StandardScaler
,然后将您要用作下一步的任何估计量。这样,当您在每个learning_curve
迭代期间调用cv
时,您正在对训练倍数上的定标器和估计量进行训练,并且在每次迭代中针对测试倍数对性能进行了验证。
在调用learning_curve
之前,您不希望缩放整个数据集。原因是在训练模型之前缩放整个集合会引入偏差,因为您使用的数据将用于验证训练模型,这可能会导致过度拟合。