【问题标题】:random_state parameter in sklearn's train_test_splitsklearn 的 train_test_split 中的 random_state 参数
【发布时间】:2019-03-25 07:42:01
【问题描述】:

不同的随机状态值对输出有什么不同?例如,如果我设置为 0,如果我设置为 100,它会对输出产生什么影响?

【问题讨论】:

    标签: python scikit-learn data-science


    【解决方案1】:

    来自docs

    random_state 是随机数生成器使用的种子。

    一般来说,种子用于创建可重现的输出。在train_test_split 的情况下,random_state 确定您的数据集如何拆分。 除非您想创建可重现的运行,否则可以跳过此参数。

    例如,如果设置为 0,如果我设置为 100,会有什么区别 制作到输出?

    对于特定种子,您将始终获得相同的训练/测试拆分。不同的种子将导致不同的训练/测试拆分。

    【讨论】:

      【解决方案2】:

      将不同的整数传递给random_state 使用这些值和makes the resulting "random" train and test data reproducible 为NumPy 的伪随机数生成器提供种子。这意味着,如果您将函数数组 arandom_seed=0 一起传递,则使用该 0 种子值将始终产生相同的训练和测试数据。

      当您传递一个整数时,该值最终会传递给scklearn.utils.check_random_state(),变为:

      if isinstance(seed, (numbers.Integral, np.integer)):
          return np.random.RandomState(seed)
      

      这又被 ShuffleSplit 之类的类用来调用随机排列:

      rng = check_random_state(self.random_state)
      for i in range(self.n_splits):
          # random partition
          permutation = rng.permutation(n_samples)
          ind_test = permutation[:n_test]
          ind_train = permutation[n_test:(n_test + n_train)]
          yield ind_train, ind_test
      

      这是一个使用实际使用方法的示例:

      >>> np.random.RandomState(0).permutation([1, 4, 9, 12, 15])
      array([ 9,  1,  4, 12, 15])
      >>> np.random.RandomState(0).permutation([1, 4, 9, 12, 15])
      array([ 9,  1,  4, 12, 15])
      >>> np.random.RandomState(0).permutation([1, 4, 9, 12, 15])
      array([ 9,  1,  4, 12, 15])
      >>> np.random.RandomState(100).permutation([1, 4, 9, 12, 15])
      array([ 4,  9, 12, 15,  1])
      >>> np.random.RandomState(100).permutation([1, 4, 9, 12, 15])
      array([ 4,  9, 12, 15,  1])
      >>> np.random.RandomState(100).permutation([1, 4, 9, 12, 15])
      array([ 4,  9, 12, 15,  1])
      

      【讨论】:

        猜你喜欢
        • 2017-12-18
        • 2021-03-10
        • 2018-09-21
        • 2017-02-12
        • 1970-01-01
        • 1970-01-01
        • 2019-01-18
        • 1970-01-01
        • 2020-03-18
        相关资源
        最近更新 更多