我想知道sklearn.model_selection learning_curve是否可以使用或确实使用sklearn.preprocessing StandardScaler。我已经看过了实现,但我的技术水平还不够高,不能靠我自己得出结论。所有关于使用learning_curve的教程都会让你将整个数据集传递给learning_curve,learning_curve会将数据分成训练集和测试集。
任何估计器的所有教程都让您将数据拆分为训练和测试,然后仅缩放训练数据,并使用训练数据缩放转换测试数据。完全理解。
是否应该在将整个数据集传递给learn_curve之前对其进行缩放。我知道learning_curve将使用k-折叠法或其他一些交叉验证方法,所以这有关系吗,因为它将通过交叉验证得到平均值?
谢谢,
发布于 2018-09-13 04:23:40
learning_curve本身并不实现StandardScaler。您可以创建一个Pipeline作为您的估计器,其中第一步是StandardScaler,然后使用您的估计器作为下一步。这样,当您在每次cv迭代期间调用learning_curve时,您正在训练训练文件夹上的缩放器和估计器,并且性能将在每次迭代中针对测试文件夹进行验证。
您不希望在调用learning_curve之前缩放整个数据集。原因是,当您在训练模型之前缩放整个集合时,您引入了偏差,因为您正在使用将用于验证的数据来训练模型,这可能会导致过度拟合。
https://stackoverflow.com/questions/52302047
复制相似问题