【问题标题】:model evaluation with "train_test_split" not static?“train_test_split”的模型评估不是静态的?
【发布时间】:2017-07-25 09:36:48
【问题描述】:

根据 sklearn.cross_validation 模块中的在线资源“train_test_split”函数返回随机状态的数据。

这是否意味着如果我用相同的数据训练一个模型两次,我会得到两个不同的模型,因为学习过程中使用的训练数据点在每种情况下都不同?

在实践中,这两种模型的准确性会相差很大吗?这是可能的情况吗?

【问题讨论】:

  • 如果你想获得可重现的行为,你可以将种子设置为某个常数,但仍然基于随机分割(这是 PRNG 的基本使用模式)。如果您不这样做,可能会使用基于时间的播种,结果会有所不同。一般来说,这些差异没有理论上的限制。理论上它可能是灾难性的(取决于使用的分类器)。

标签: python machine-learning scikit-learn


【解决方案1】:

您可以将random_state 参数设置为某个常数值以重现数据拆分。另一方面,准确地测试您想要知道的内容通常是一个好主意 - 即,在不同的随机状态下至少运行两次训练并比较结果。如果它们差异很大,则表明出现问题并且您的解决方案不可靠。

【讨论】:

    猜你喜欢
    • 2021-11-26
    • 1970-01-01
    • 1970-01-01
    • 2015-02-25
    • 1970-01-01
    • 1970-01-01
    • 2017-03-24
    • 1970-01-01
    • 2020-03-06
    相关资源
    最近更新 更多