keras: train_test_split中random_state如何理解

train_test_split 将数组或矩阵拆分为随机的训练和测试子集。 这意味着每次在不指定 random_state 的情况下运行它时,都会得到不同的结果,这是预期的行为。 例如:

Run 1:

>>> a, b = np.arange(10).reshape((5, 2)), range(5)
>>> train_test_split(a, b)
[array([[6, 7],
        [8, 9],
        [4, 5]]),
 array([[2, 3],
        [0, 1]]), [3, 4, 2], [1, 0]]

Run 2:

>>> train_test_split(a, b)
[array([[8, 9],
        [4, 5],
        [0, 1]]),
 array([[6, 7],
        [2, 3]]), [4, 2, 0], [3, 1]]

在不设定random_state时候,每次split的内容都会改变。 另一方面,如果使用 random_state=some_number,那么可以保证 Run 1 的输出将等于 Run 2 的输出,即拆分将始终相同。 实际的 random_state 数字是 42、0、21 并不重要,重要的是每次使用 42 时,每次进行拆分时总是会得到和第一次相同的输出。 如果你想要可重现的结果(例如在文档中),这将非常有用,这样每个人在运行示例时都可以始终如一地看到相同的数字。 在实践中,一般建议应该在测试内容时将 random_state 设置为某个固定数字,但是如果确实需要随机(而不是固定)拆分,则在实际生产中将其删除。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值