为啥我的`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()`返回相同的样本[重复]的主要内容,如果未能解决你的问题,请参考以下文章