【问题标题】:GridSearchCV not fetching mean_test_score in colabGridSearchCV 未在 colab 中获取 mean_test_score
【发布时间】:2019-11-03 13:23:26
【问题描述】:

我在 colab 中使用 GridSearchCV 运行 randomForestClassifier。 但是,myGridSearchCV 不返回 mean_test_score 并显示它不存在。 当我尝试检查 clf.cvresults 时,没有 mean_test_score。这适用于 Jupyter notebook 而不是 Colab,我最近遇到了这个问题。

[Parallel(n_jobs=1)]: Done 120 out of 120 | elapsed: 25.3min finished
---------------------------------------------------------------------------
KeyError                                  Traceback (most recent call last)
<ipython-input-128-1d8f6c95affb> in <module>()
      7 clf.fit(X_tr, y_train)
      8 
----> 9 train_auc= clf.cv_results_['mean_train_score']
     10 cv_auc = clf.cv_results_['mean_test_score']

KeyError: 'mean_train_score'

【问题讨论】:

  • 请显示clf的定义(不在此处,编辑和更新您的帖子)

标签: machine-learning scikit-learn google-colaboratory gridsearchcv


【解决方案1】:

值得注意的是,如果您使用多个记分器,即使您在网格搜索中设置了return_train_score=True,您仍然可能会收到mean_train_score 的错误。这就是原因。如果您使用多个记分器运行GridSearchCV(例如,您将参数传递给网格搜索,例如scoring= {'Accuracy': 'accuracy', 'F1': 'f1_macro', 'AUC': 'roc_auc'}),那么您可以预期mean_train_score 变量名称将取决于您将refit 设置为.例如,如果您设置了refit='AUC',则相应的变量名称将是mean_train_AUC,其他名称也将相应地设置。 scikit-learn 中记录了这些非常细微的变化,但检测和处理可能会很痛苦。

【讨论】:

    【解决方案2】:

    mean_train_score 缺失,您可以使用

    进行交叉验证

    scores = rf.cv_results_

    pd.DataFrame(scores).head()

    rf 是你的 gridsearchcv

    你会得到类似下面的错误

    KeyError: 'mean_train_score'

    解决方案

     在 gridsearchcv 中设置 return_train_score=True

    rf = GridSearchCV(rf, parameters, cv=n_folds, scoring="accuracy",return_train_score=True)

    【讨论】:

    • 这与已经接受的解决方案有何不同?为什么你引用所有内容?
    • 我是一个非常弱的学习者,对机器学习、Python 和 stackoverflow 非常陌生。我遇到了同样的问题,第一个答案我无法解决,我认为对像我这样的人来说,详细的解决方案会有所帮助。如果我错了,我很抱歉
    • 但您实际建议的是完全接受的答案,即在 GridSearchCV 对象中设置 return_train_score=True - 没什么不同。 首先对你没有用吗?
    • 事实上这样的术语,这就是为什么 cmets & edits 在这里 - 我们不应该使用答案空间来评论或回复 answers。我可以看到您的第二点(不,我肯定 不是 天才),但同样,答案清楚地表明“设置return_train_score=True in gridsearchcv 参数”。您还应该看到您的帖子“看起来”不正确(您引用了所有内容),然后返回并解决此问题。所有这些都为不赞成投票提供了很好的理由(条款中也包含了这一点)。如果您努力改进您的帖子,很高兴撤回...
    【解决方案3】:

    实际上你得到了mean_train_score 键错误。只需在 gridsearchcv 参数中设置return_train_score=True,它就可以完成这项工作。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-01-04
      • 1970-01-01
      • 1970-01-01
      • 2020-07-28
      • 2018-08-12
      • 2021-11-12
      • 2018-06-30
      • 2017-12-10
      相关资源
      最近更新 更多