20

当使用 auc_score 作为评分函数时,GridSearchCV 是否使用 predict 或 predict_proba?

predict 函数生成预测的类标签,这将始终导致三角 ROC 曲线。使用预测的类别概率获得更弯曲的 ROC 曲线。据我所知,后者更准确。如果是这样,“弯曲”ROC 曲线下的区域可能是衡量网格搜索中分类性能的最佳选择。

因此,当使用 ROC 曲线下的区域作为性能度量时,我很好奇类标签或类概率是否用于网格搜索。我试图在代码中找到答案,但无法弄清楚。这里有人知道答案吗?

谢谢

4

2 回答 2

31

auc_score用于网格搜索,您确实需要使用predict_probadecision_function正如您指出的那样。这在 0.13 版本中是不可能的。如果你这样做score_func=auc_score,它将使用predictwhich 没有任何意义。

[edit]从 0.14 开始[/edit]可以使用 auc_score 进行网格搜索,方法是将新scoring参数设置为roc_auc: GridSearch(est, param_grid, scoring='roc_auc')。它会做正确的事情并使用predict_proba(或者decision_function如果predict_proba不可用)。查看当前开发版本的最新页面

您需要从 github 安装当前的 master 才能获得此功能,或者等到 0.14 的 4 月(?)。

于 2013-02-20T10:52:39.627 回答
0

在使用 Sklearn SVC(predict_proba可用)进行一些实验后,将一些结果与predict_proba和进行比较decision_function,似乎roc_auc用于GridSearchCV计算decision_functionAUC 分数。我在这里找到了一个类似的讨论:Reproduce Sklearn SVC within GridSearchCV's roc_auc scores manual

于 2021-11-19T16:10:15.153 回答