【问题标题】:Questions on Scikit-Learn early stopping关于 Scikit-Learn 提前停止的问题
【发布时间】:2019-10-26 19:12:24
【问题描述】:

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

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

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

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

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

【问题讨论】:

    标签: python machine-learning scikit-learn mlp


    【解决方案1】:

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

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

    连续验证数据相同还是不同 训练的迭代次数?

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

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

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

    当验证分数没有提高至少 tol 时 n_iter_no_change 连续 epochs,将之前的最佳回归器 被返回,或者 fit() 函数会简单地返回最后一个 回归器?

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

    【讨论】:

    • 好吧……我明白了。你能更准确地回答最后一个问题吗?假设迭代中的验证分数是...... 0.21, 0.22, 0.20, 0.19, 0.18 最后,它会在验证分数为 0.22 时返回回归量,还是在 0.18 时返回回归量?
    • @ChongLipPhang MLPRegressor 将返回最佳参数。即验证准确度的参数(0.22)。检查更新答案中的链接。
    猜你喜欢
    • 2014-03-22
    • 2019-02-25
    • 2021-03-30
    • 1970-01-01
    • 2021-07-29
    • 2017-04-26
    • 1970-01-01
    • 1970-01-01
    • 2017-08-05
    相关资源
    最近更新 更多