Muh*_*qar 6 python scikits scikit-learn
我试图sklearn.metrics.roc_auc_score使用以下方法计算ROC曲线下的面积:
roc_auc = sklearn.metrics.roc_auc_score(actual, predicted)
Run Code Online (Sandbox Code Playgroud)
其中actual是具有地面实况分类标签predicted的二元向量,并且是具有我的分类器预测的分类标签的二元向量.
但是,roc_auc我得到的值与准确度值(标签正确预测的样本比例)完全相似.这不是一次性的事情.我在各种参数值上尝试我的分类器,每次得到相同的结果.
我在这做错了什么?
mba*_*rov 13
这是因为您传递了分类器的决定而不是它计算的分数.最近有一个关于SO的问题和一个相关的拉动请求scikit-learn.
ROC曲线(及其下面的区域)的点是您在分类阈值变化时研究精确召回权衡.默认情况下,在二进制分类任务中,如果您的分类器的分数是 > 0.5,则class1预测,否则class0预测.当你改变这个门槛,你得到的曲线此.曲线越高(其下面的区域越多),分类器越好.但是,要获得此曲线,您需要访问分类器的分数,而不是其决策.否则无论决策阈值如何,决策都保持不变,AUC退化为准确性.
你使用哪种分类器?
| 归档时间: |
|
| 查看次数: |
7273 次 |
| 最近记录: |