GridSearchCV 未在 colab 中获取 mean_test_score

GridSearchCV not fetching mean_test_score in colab

我 运行 randomForestClassifier 在 colab 中使用 GridSearchCV。 然而,myGridSearchCV 没有 return mean_test_score 并且表明它不存在。 当我尝试检查 clf.cvresults 时,mean_test_score.This 在 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'

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

mean_train_score is missing you can cross verify this using

scores = rf.cv_results_

pd.DataFrame(scores).head()

rf is your gridsearchcv

you will be getting error something like below

KeyError: 'mean_train_score'

solution

 set return_train_score=True in gridsearchcv 

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

可能值得注意的是,如果您使用多个计分器,即使您在网格搜索中设置了 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 中记录了这些非常细微的变化,但检测和处理起来可能会很痛苦。