GridSearchCV无法在colab中获取mean_test_score

时间:2019-06-20 17:03:36

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

我在合作实验室中使用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'

3 个答案:

答案 0 :(得分:0)

实际上,您收到mean_train_score键错误。只需在 gridsearchcv 参数中设置return_train_score=True,即可完成工作。

答案 1 :(得分:0)

  

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)

答案 2 :(得分:0)

可能值得注意的是,即使您使用多个计分器,即使您在网格搜索中设置了mean_train_score,您仍然可能会遇到return_train_score=True错误。这是原因。如果您正在运行具有多个计分器的GridSearchCV(例如,您将参数传递到scoring= {'Accuracy': 'accuracy', 'F1': 'f1_macro', 'AUC': 'roc_auc'}等网格搜索中),则可以预期mean_train_score变量名将取决于您拥有的变量将refit设置为。例如,如果您设置了refit='AUC',则相应的变量名称将为mean_train_AUC,并相应地为其他名称。这些是scikit-learn中记录的非常微妙的更改,但可能难以发现和处理。