【发布时间】:2016-04-04 12:29:47
【问题描述】:
在 scikit-learn 中,GridSearchCV() 支持 'roc_auc' 作为评分函数。 它适用于 n 折交叉验证,但如果我使用 LeaveOneOut,它就不起作用并生成错误消息。
ValueError: Only one class present in Y. ROC AUC score is not defined in that case.
虽然用 AUC 绘制只有一个样本似乎很自然,但其他语言(例如 R)支持 LeaveOneOut 的 roc_auc。
如何使用 python 和 scikit-learn 进行计算?如果不可能,会不会像这样使用大折交叉验证结果?
【问题讨论】:
-
您是否尝试为单类模型绘制多类 Roc 曲线?你读过this 吗?
-
留一个交叉验证的问题是 GridSearchCV 计算每个折叠的分数,然后报告平均值。如果遗漏一个,就不可能为单个样本生成分数。
-
感谢您的回答。所以 GridSearchCV() 不能用 LeaveOneOut 完成。那么,有没有其他方法可以计算所有样本改变参数而不是GridSearchCV的roc_auc分数?
标签: python scikit-learn