You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用PyCaret训练模型时报ValueError:shuffle为False时random_state无效如何解决

报错原因

你调用setup函数时传入的session_id=2参数,作用是给数据集拆分、模型初始化等步骤设置固定随机种子,保证实验结果可复现,等价于设置了random_state=2。
但当前数据集拆分的shuffle参数为False,拆分训练集、测试集时不会打乱数据顺序,此时设置随机种子没有任何作用,因此触发了该ValueError。

解决方法

根据你的业务场景二选一即可:

  • 如果你做的是普通表格类任务,允许打乱数据集顺序,在setup中新增shuffle=True参数即可,既可以保留session_id的可复现性,也可以解决报错。修改后代码示例:
# 注意:目标列Survived是分类标签,分类任务请导入classification模块
from pycaret.classification import *
clf1 = setup(data = df, target = 'Survived', train_size = 0.7, session_id = 2, shuffle=True)

best=compare_models()
  • 如果你做的是时序类任务,不能打乱数据顺序,直接去掉session_id参数即可,保持random_state为默认的None就不会触发报错。修改后代码示例:
# 确认是回归任务、且不允许打乱数据时使用
from pycaret.regression import *
clf1 = setup(data = df, target = 'Survived', train_size = 0.7)

best=compare_models()

额外提示:你当前导入的回归模块和目标列的分类任务不匹配,若为分类场景请务必替换导入的模块为pycaret.classification,避免后续出现其他不符合预期的错误。

内容的提问来源于stack exchange,提问作者guilherme guerra

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.19 04:15:04