0

我在 colab 中randomForestClassifier使用。GridSearchCV但是,myGridSearchCV不返回 mean_test_score 并显示它不存在。当我尝试检查clf.cv结果时,没有 mean_test_score。这适用于 Jupyter 笔记本而不是 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'
4

3 回答 3

2

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

于 2019-07-21T21:02:55.487 回答
0

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

于 2020-09-29T15:57:37.663 回答
-1

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)

于 2019-07-24T05:05:24.927 回答