我在合作实验室中使用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'
答案 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
中记录的非常微妙的更改,但可能难以发现和处理。