拆分数据集中的Python随机状态
machine-learning
python
scikit-learn
5
0

我是python的新手。谁能告诉我为什么在拆分训练和测试集时将随机状态设置为零。

X_train, X_test, y_train, y_test = \
    train_test_split(X, y, test_size=0.30, random_state=0)

我看到过这样的情况,其中随机状态设置为1!

X_train, X_test, y_train, y_test = \
    train_test_split(X, y, test_size=0.30, random_state=1)

交叉验证中这种随机状态的结果也是什么?

参考资料:
Stack Overflow
收藏
评论
共 4 个回答
高赞 时间 活跃

random_state分割随机选择的数据,但会产生扭曲。而且不同的是,对于特定的random_state值,数据的顺序将是相同的。您需要了解它不是布尔值。从0开始到任何整数no,如果您以random_state传递,则它将是一个永久性的命令。例如:您将在random_state=0获得的顺序保持不变。之后,如果您执行random_state=5并再次返回random_state=0您将获得相同的顺序。像0一样,所有整数都将相同。 random_state=None每次随机分割。

如果仍然有疑问请观看

收藏
评论

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

但是,如果每次使用一个特定的值作为random_state(random_state = 1或任何其他值),则结果将相同,即训练和测试数据集中的值相同。

收藏
评论

我们将random_state参数用于每个时期后训练数据集的初始改组的可重复性。

收藏
评论

不管random_state是0还是1或任何其他整数都没有关系。重要的是,如果要验证多次运行的代码的处理,则应将其设置为相同的值。顺便说一下,我已经看到在scikit的许多官方示例以及其他地方都使用了random_state=42

顾名思义, random_state用于初始化内部随机数生成器,该生成器将根据您的情况决定将数据拆分为训练索引和测试索引。在文档中指出:

如果random_state为None或np.random,则返回一个随机初始化的RandomState对象。

如果random_state是整数,则将其用作种子新的RandomState对象。

如果random_state是RandomState对象,则将其传递。

这是在多次运行代码时检查和验证数据。将random_state设置为固定值将确保每次运行代码时都生成相同的随机数序列。并且,除非过程中存在其他随机性,否则产生的结果将与以往一样。这有助于验证输出。

收藏
评论
新手导航
  • 社区规范
  • 提出问题
  • 进行投票
  • 个人资料
  • 优化问题
  • 回答问题

关于我们

常见问题

内容许可

联系我们

@2020 AskGo
京ICP备20001863号