有关Scikit-Learn早停的问题

时间:2019-06-12 09:56:40

标签: python machine-learning scikit-learn mlp

启用Scikit-Learn MLPRegressor时,我对{{3}}有一些疑问:

  1. 是否在提供的测试数据的前面或后面随机选择了验证数据(请参见“ validation_fraction”)?

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

  3. 在培训的最后阶段是否会自动包含/修改验证数据?

  4. 如果对于n_iter_no_change个连续时期,验证得分至少没有提高tol,那么将返回先前的最佳回归值,还是fit()函数仅返回最后一个回归值?

1 个答案:

答案 0 :(得分:1)

  

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

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

  

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

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

  

在验证期间,将自动包含/修改验证数据   培训的最后阶段?

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

  

当验证分数没有提高至少tol   n_iter_no_change连续的历元,将前一个最佳回归   返回,还是将fit()函数简单地返回最后一个   回归器?

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