为啥我的`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_train
、X_test
、y_train
、y_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_split
random_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 最差?