我对Scikit-Learn的MLPRegressor在启用提前停止时有一些问题:
-
验证数据(见’validation_fraction’)是从提供的测试数据的前部、后部还是随机选取的?
-
在训练的连续迭代中,验证数据是相同的还是不同的?
-
验证数据会在训练的最后阶段自动包含/重新拟合吗?
-
当验证分数在连续n_iter_no_change个epoch中至少未提高tol时,是返回之前的最佳回归器,还是fit()函数简单地返回最后的回归器?
回答:
验证数据(见’validation_fraction’)是从提供的测试数据的前部、后部还是随机选取的?
MLPRegressor
在内部使用train_test_split
来创建验证数据。如果MLPRegressor
的shuffle
参数设置为false,则该部分数据从测试数据的末尾取出。如果shuffle
设置为true,则数据随机选取。
在训练的连续迭代中,验证数据是相同的还是不同的?
验证数据在所有训练迭代中都是相同的
验证数据会在训练的最后阶段自动包含/重新拟合吗?
验证数据永远不会用于训练模型。它仅用于对模型进行评分。
当验证分数在连续n_iter_no_change个epoch中至少未提高tol时,是返回之前的最佳回归器,还是fit()函数简单地返回最后的回归器?
如果验证分数未提高,提前停止会停止训练模型(避免过拟合)并返回模型的最佳参数(链接)