from:http://kubicode.me/2016/09/19/Machine%20Learning/AUC-Calculation-by-Python/python
AUC
(Area Under Curve)是机器学习二分类模型中很是经常使用的评估指标,相比于F1-Score
对项目的不平衡有更大的容忍性,目前常见的机器学习库中(好比scikit-learn)通常也都是集成该指标的计算,其计算原理能够参考这个ROC和AUC介绍以及如何计算AUC ,可是有时候模型是单独的或者本身编写的,此时想要评估训练模型的好坏就得本身搞一个AUC
计算模块,本文在查询资料时发现libsvm-tools
1有一个很是通俗易懂的auc
计算,所以抠出来用做往后之用。
app
AUC
的计算分为下面三个步骤:机器学习
evaluate
)通常就能够直接计算了,数据的格式通常就是须要预测得分以及其目标类别(注意是目标类别,不是预测获得的类别)False Positive Rate
)以及纵(Y:True Positive Rate
)点AUC
的值直接上python代码学习
1 |
#! -*- coding=utf-8 -*- |
输入的数据集能够参考svm预测结果
其格式为:lua
nonclk \t clk \t score
其中:spa
nonclick
:未点击的数据,能够看作负样本的数量clk
:点击的数量,能够看作正样本的数量score
:预测的分数,以该分数为group进行正负样本的预统计能够减小AUC
的计算量运行的结果为:code
若是本机没安装
pylab
能够直接注释依赖以及画图部分blog
上面贴的代码:ip
score
都作了一次阈值,其实这样效率是至关低的,能够对样本进行采样或者在计算横轴坐标时进行等分计算