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

Python使用sklearn的GridSearchCV运行时报NOTSET语法错误如何解决?

问题根因与解决建议

核心错误根因

  1. Python版本与依赖库不兼容
    你当前使用的是Python 3.5版本,而报错涉及的_pytest/compat.py中的NOTSET: "Final"写法属于Python 3.6才正式支持的变量类型注解语法,你安装的pytest版本过高,已经不再适配Python 3.5,在GridSearchCV开启多进程(n_jobs=-1)调度时,导入链触发了pytest模块的加载,所以抛出语法错误。你平时单进程运行基础RF模型没有触发这个导入逻辑,所以可以正常运行。
  2. 超参数配置错误(后续运行会触发的隐藏问题)
    你使用的是RandomForestRegressor回归模型,但是参数网格中criterion的取值gini、entropy是分类随机森林的评价准则,回归模型不支持这两个取值,解决版本问题后运行依然会抛出参数不合法错误。

解决建议

  • 优先升级Python版本到3.8及以上,目前Python 3.5已经停止维护多年,主流机器学习库都不再对其做适配,升级版本可以避免绝大多数依赖兼容问题。
  • 如果暂时无法升级Python版本,可以采取以下两个临时方案:
    1. 降级pytest到最后一个支持Python 3.5的版本,执行命令:
      pip install pytest==4.6.11
    2. 将GridSearchCV的n_jobs参数设置为1,关闭多进程并行,避开pytest模块的导入逻辑,缺点是网格搜索速度会变慢。
  • 修正参数网格中的criterion取值,替换为回归模型支持的选项:
    新版本sklearn可取值为squared_error、absolute_error、friedman_mse;旧版本sklearn可取值为mse、mae,修改示例:
    'criterion' :['squared_error', 'absolute_error']
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.02 14:39:03