0

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

  1. 验证数据(参见“validation_fraction”)是随机选择的,位于提供的测试数据的前面还是后面?

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

  3. 验证数据是否会在训练的最后阶段自动包含/重新调整?

  4. 当验证分数在 n_iter_no_change 连续 epoch 中至少没有提高 tol 时,会返回之前的最佳回归量,还是 fit() 函数会简单地返回最后一个回归量?

4

1 回答 1

1

验证数据(参见“validation_fraction”)是随机选择的,位于提供的测试数据的前面还是后面?

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

在训练的连续迭代过程中,验证数据是相同还是不同?

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

验证数据是否会在训练的最后阶段自动包含/重新调整?

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

当验证分数在 n_iter_no_change 连续 epoch 中至少没有提高 tol 时,会返回之前的最佳回归量,还是 fit() 函数会简单地返回最后一个回归量?

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

于 2019-06-12T10:49:46.577 回答