关于 Scikit-Learn 提前停止的问题

Questions on Scikit-Learn early stopping

启用提前停止时,我对 Scikit-Learn MLPRegressor 有一些疑问:

  1. 验证数据(见'validation_fraction')是随机选择的,在提供的测试数据的前面,还是后面?

  2. 在训练的连续迭代中验证数据是相同还是不同?

  3. 验证数据会在训练的最后阶段自动included/refit吗?

  4. 当验证分数在 n_iter_no_change 个连续时期没有提高至少 tol 时,是否会 return 编辑先前的最佳回归器,或者 fit() 函数只是 return 最后一个回归变量?

Is the validation data (see 'validation_fraction') randomly selected, at the front, or at the back of the test data supplied?

MLPRegressor 在内部使用 train_test_split 创建验证数据。如果 MLPRegressorshuffle 参数设置为 false,则分数取自测试数据的末尾。如果 shuffle 设置为 true 则随机选择数据。

Is the validation data the same or different during successive iterations of the training?

所有训练迭代的验证数据都相同

Will the validation data automatically be included/refit during the final stage of the training?

验证数据永远不会用于训练模型。它仅用于对模型进行评分。

When the validation score is not improving by at least tol for n_iter_no_change consecutive epochs, will the previous best regressor be returned, or will the fit() function simply return the last regressor?

如果验证分数没有提高,而不是继续,提前停止将停止训练模型(避免过度拟合)和return模型最佳参数(link