sklearn.model_selection.train_test_split示例中的“随机状态”是什么?

Sau*_*abh 2 python numpy machine-learning scikit-learn

我真的是机器学习的新手,我正在研究sklearn上的一些示例

有人可以在以下示例中解释“随机状态”的真正含义吗

import numpy as np
from sklearn.model_selection import train_test_split
X, y = np.arange(10).reshape((5, 2)), range(5)
X

list(y)


X_train, X_test, y_train, y_test = train_test_split(
    X, y, test_size=0.33, random_state=42) 

X_train

y_train

X_test

y_test
Run Code Online (Sandbox Code Playgroud)

为什么将其硬编码为42?

vum*_*sha 10

随机状态确保您生成的分割是可重现的。Scikit-learn 使用随机排列来生成分割。您提供的随机状态用作随机数生成器的种子。这确保随机数以相同的顺序生成。


小智 9

如果您没有在代码中指定 random_state,那么每次运行(执行)您的代码时都会生成一个新的随机值,并且每次训练和测试数据集都会有不同的值。

但是,如果分配了一个固定值,如 random_state = 0 或 1 或 42 或任何其他整数,那么无论您执行代码多少次,结果都是相同的,即训练和测试数据集中的值相同。


kis*_*idu 6

当每次运行的代码中未定义 Random_state 时,训练数据将发生变化,并且每次运行的准确性可能会发生变化。当定义 Random_state = "constant integer" 时,每次运行的训练数据都将是恒定的,以便于调试。


cs9*_*s95 5

这不是很明显吗?42是对生命,宇宙和万物的终极问题的解答

值得一提的是,random_state只需为随机生成器设置一个种子,这样火车测试的分割始终是确定性的。如果您不设置种子,则每次都不同。

相关文件

random_stateintRandomState实例或None,可选的(默认= None
如果intrandom_state是由随机数发生器使用的种子; 如果是RandomStateinstance,random_state是随机数生成器;如果为None,则随机数生成器是所RandomState使用的 实例np.random

  • 第一句话绰绰有余。 (2认同)