启用提前停止时,我对Scikit-Learn MLPRegressor有一些疑问:
是否在提供的测试数据的前面或后面随机选择了验证数据(请参见“ validation_fraction”)?
在训练的连续迭代过程中,验证数据是相同还是不同?
培训的最后阶段是否会自动包含/修改验证数据?
如果对于n_iter_no_change连续时期,验证得分至少没有提高tol,那么将返回前一个最佳回归值,还是fit()函数将仅返回最后一个回归值?
最佳答案
是否随机选择了验证数据(请参见“ validation_fraction”),
在提供的测试数据的前面还是后面?MLPRegressor
在内部使用train_test_split
创建验证数据。如果shuffle
的MLPRegressor
参数设置为false,则从测试数据的末尾获取分数。如果shuffle
设置为true,则将随机选择数据。
验证数据在连续过程中是相同还是不同
训练的迭代?
训练的所有迭代的验证数据都相同
验证数据是否会在验证期间自动包含/修改
培训的最后阶段?
验证数据将永远不会用于训练模型。它仅用于对模型评分。
当验证分数没有改善至少为
n_iter_no_change连续的历元,将前一个最佳回归
返回,还是将fit()函数简单地返回最后一个
回归器?
如果验证得分没有提高,而不是继续,那么提前停止将停止训练模型(避免过度拟合),并返回模型的最佳参数(link)