什么是 Gridsearch.cv_results_ ,可以解释其中的所有内容,即 mean_test_score 等吗?

Posted

技术标签:

【中文标题】什么是 Gridsearch.cv_results_ ,可以解释其中的所有内容,即 mean_test_score 等吗?【英文标题】:what is Gridsearch.cv_results_ , could any explain all the things in that i.e mean_test_score etc .? 【发布时间】:2019-07-03 14:54:17 【问题描述】:

我正在使用GridSearchCV 为决策树进行超参数调整。我已经拟合了模型,我正在尝试找出 Gridsearch.cv_results_ 给出的确切内容。我已经阅读了文档,但仍然不清楚。谁能解释一下这个属性?

我的代码如下:

depth="max_depth":[1,5,10,50,100,500,1000],
       "min_samples_split":[5,10,100,500]       

DTC=DecisionTreeClassifier(class_weight="balanced")

DTC_Grid=GridSearchCV(DTC,param_grid=depth , cv=3, scoring='roc_auc')
DTC_Bow=DTC_Grid.fit(xtrain_bow,ytrain_bow) 

【问题讨论】:

【参考方案1】:

DTC_Bow.cv_results_ 返回来自 gridsearch 的所有评估指标的字典。要正确可视化它,您可以这样做

pd.DataFrame(DTC_Bow.cv_results_)

在您的情况下,这应该返回一个包含 28 行的数据框(max_depth 的 7 个选项乘以 min_samples_split 的 4 个选项)。该数据框的每一行都给出了这两个参数组合的网格搜索指标。请记住,网格搜索的目标是选择具有最佳性能指标的参数组合。这就是cv_results_的目的。

您应该有一个名为param_max_depth 的列和另一个名为param_min_samples_leaf 的列引用每一行的参数值。两者的组合在params列中总结为字典。

现在是指标。到目前为止,return_train_score 的默认值是 True,但他们将在 0.21 版中将其更改为 False。如果您需要训练指标,请将其设置为 True。但通常,您感兴趣的是测试指标。

主栏是mean_test_score。这是split_0_test_score, split_1_test_score, split_2_test_score 列的平均值(因为您在网格搜索中进行了 3 折拆分)。如果您执行DTC_Bow.best_score_,这将返回mean_test_score 列的最大值。 rank_test_score 列按mean_test_score 的值对所有参数组合进行排名。

您可能还想查看std_test_score,它是split_0_test_score, split_1_test_score, split_2_test_score 的标准差。如果您想了解您的一组参数在保留数据上的执行情况,这可能会很有趣。

如前所述,如果您设置了return_train_score = True,您也可以在火车上设置指标。

最后,还有时间列,告诉您每行花费了多少时间。它测量训练模型 (mean_fit_time, std_fit_time) 和评估模型 (mean_score_time, std_score_time) 所花费的时间。这只是一个仅供参考,通常,除非时间是瓶颈,否则您不会真正查看这些指标。

【讨论】:

感谢您的详细解释,聚会有点晚了,但这有所帮助。我想知道 test_score 反映了什么?我在每一折中都得到了不错的 test_scores,但我的准确率仍然很低,谢谢!

以上是关于什么是 Gridsearch.cv_results_ ,可以解释其中的所有内容,即 mean_test_score 等吗?的主要内容,如果未能解决你的问题,请参考以下文章

什么是PP,PE.什么是均聚..什么是共聚..什么是嵌段..什么是无规,什么是注塑。什么是吹膜..什

时间是什么?时间同步是什么?GPS北斗卫星授时又是什么?

什么是拉电流,什么是灌电流?什么是吸收电流 ?

在java中,OOA是什么?OOD是什么?OOP是什么?

什么是DIV,全称是什么?

什么是抢占/什么是可抢占内核?到底有什么好处呢?