【问题标题】:How to fix 'name 'cross_validation' is not defined' error in python如何修复python中的'name'cross_validation'未定义'错误
【发布时间】:2019-07-27 15:50:07
【问题描述】:

我正在尝试运行 XGBClassifier 参数调整,并在这行代码之后出现“'name 'cross_validation' is not defined”错误:

  kfold_5 =  cross_validation.KFold(n = len(X), shuffle = True, n_folds = numFolds)

也许我没有导入合适的库?

【问题讨论】:

  • 如果我的回答有帮助,请告诉我
  • @serafeim 很好的答案完美运行

标签: scikit-learn cross-validation xgbclassifier


【解决方案1】:

首先,获取你的版本:

import sklearn
sklearn.__version__

在 scikit-learn 0.17 版之后,cross_validation.KFold 已迁移到 model_selection.KFold

如果你有 0.17 版本,请使用:

from sklearn.cross_validation import KFold

kfold_5 = KFold(n= len(X), n_folds = numFolds, shuffle=True)

如果您的版本高于 0.17,请使用:

from sklearn.model_selection import KFold

kfold_5 = KFold(n_splits = numFolds, shuffle=True)

Documentation for 0.21 version is here

【讨论】:

  • 导入语句取决于 OP 的 sklearn 版本。我已经更新了我的答案。
  • 确实是 - (+1) 现在(以前版本的答案假设 OP 有一个新版本,而未提供此类信息)
  • @serafeim 对于第一个代码 sn-p 我得到“没有名为 'sklearn.cross_validation' 的模块对于第二个我得到“TypeError: __init__() got an unexpected keyword argument 'n'”跨度>
  • 第二个,你输入的准确吗 kfold_5 = KFold(n_splits = numFolds, shuffle=True) ?在这种情况下,输入参数与第一种情况不同。
  • @ErezBen-Moshe 请密切关注提供的sn-ps;在第二个 sn-p 中应该 not 有任何参数 n
猜你喜欢
  • 2019-09-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-04-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多