为啥我的`train_test_split()`返回相同的样本[重复]

Posted

技术标签:

【中文标题】为啥我的`train_test_split()`返回相同的样本[重复]【英文标题】:Why does my `train_test_split()` returns same samples [duplicate]为什么我的`train_test_split()`返回相同的样本[重复] 【发布时间】:2021-10-10 06:08:10 【问题描述】:

为什么我的sklearn.model_selection.train_test_split() 每次运行代码时都会返回相同的X_trainX_testy_trainy_test 样本,即使我保留了shuffle=True,并且我没有手动定义种子值?

我正在打印这样的样本:

X_train, X_test, y_train, y_test = train_test_split(x, y, test_size = 0.3, random_state = 100, shuffle=True)

print (y_test)

【问题讨论】:

你正在强制一个特定的随机状态。去掉它,你会得到不同的结果 啊,我太傻了,谢谢!能否请您发表您的评论和答案,我可以将其作为解决方案。 【参考方案1】:

train_test_splitrandom_state 控制样本的状态(https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.train_test_split.html):

在应用拆分之前控制应用于数据的混洗。在多个函数调用中传递一个 int 以实现可重现的输出

要获得不同的结果,只需删除参数即可。

【讨论】:

以上是关于为啥我的`train_test_split()`返回相同的样本[重复]的主要内容,如果未能解决你的问题,请参考以下文章

为啥 train_test_split 需要很长时间才能运行?

train_test_split 是二进制分类所必需的吗?为啥会有 4 个结果?

为啥 ShuffleSplit 比 train_test_split 更多/更少随机(使用 random_state=None)?

为啥 10 倍交叉验证的准确度得分比使用 sklearn 的 90-10 train_test_split 最差?

为啥 Boost.Asio SSL 请求返​​回 405 Not Allowed?

使用 train_test_split 后分类器准确率为 100%