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

运行代码时出现NameError: name 'cross_validation'未定义问题求助

解决scikit-learn 0.19.1中cross_validation未定义的错误

这个问题我之前踩过坑!在scikit-learn 0.18版本之后,cross_validation模块就被废弃并迁移到model_selection子模块里了,所以你直接调用cross_validation会触发NameError。

具体修复方案:

  • 调整导入语句:
    如果你之前写的是:

    from sklearn import cross_validation
    

    请替换成下面两种方式之一:
    方式一(推荐,直接导入需要的函数):

    from sklearn.model_selection import train_test_split
    

    方式二(保留cross_validation的调用习惯):

    import sklearn.model_selection as cross_validation
    
  • 修改报错代码行:
    如果你用了方式一的导入,直接把报错代码改成:

    X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2)
    

    如果你用了方式二的导入,原来的代码行可以保持不变,就能正常运行了。

额外说明:

scikit-learn从0.18版本开始,就把所有交叉验证相关的工具(包括train_test_split、KFold等)统一归集到sklearn.model_selection下,旧的cross_validation模块只是临时做了兼容处理,但在0.19.1版本里已经不再默认提供顶层引用,所以才会出现未定义的错误。建议尽量使用新的模块路径,避免后续版本升级时再次遇到类似问题。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 07:37:44