zoukankan      html  css  js  c++  java
  • roc_auc_score

    roc_auc_score(Receiver Operating Characteristics(受试者工作特性曲线,也就是说在不同的阈值下,True Positive Rate和False Positive Rate的变化情况))

    我们只考虑判为正的情况时,分类器在正例和负例两个集合中分别预测,如果模型很好,在正例中预测,百分百为正例,而在负例中预测,百分0为正例,说明模型分类能力很强,因为对于不同的例子进行了区别对待,正确识别了。

    如果模型很差,在正负例两个集合中,全都一般判为正,一半判为负,则说明这个分类器啥也没干。

    TPR(预测为正的在正例中的比例) = TP/P = TP/(TP+FN)

    FPR(预测为正的在正例中的比例) = FP/N = FP/(FP+TN)

    并且通过调整阈值,一定存在两个点:

    1、全部样本都判正,则TPR=1, FPR=1

    2、全部样本都判负,则TPR=0, FPR=0

    所以,如果分类器啥也没干,则为中间虚线,AUC=AUCmin=0.5

    如果分类器真正有识别能力,则TPR>FPR,也就是在正例中更倾向于判正,负例中倾向于判负,为图中实线。

    如果在某一阈值下,TPR为1,FPR=0,则这个分类器经过点(0,1),AUC=AUCmax=1

    实际模型判定时,通常令thresh=0.5,即高于0.5判正,低于0.5判负。但考虑到样本不均的问题,我们应该使用不同的thresh,然后去计算auc。这个过程可以让sklearn帮我们完成。

    import numpy as np

    from sklearn.metrics import roc_auc_score

    y_true = np.array([0, 0, 1, 1])

    y_scores = np.array([0.1, 0.4, 0.35, 0.8])

    roc_auc_score(y_true, y_scores)

    0.75

    auc就是曲线下面积,这个数值越高,则分类器越优秀

    https://zhuanlan.zhihu.com/p/100059009

    https://www.zhihu.com/question/39840928

  • 相关阅读:
    lbs(查看附近的人),看看社交软件如何实现查看附近的人
    PHP框架中的日志系统
    PHP链式操作输出excel(csv)
    看看你的正则行不行——正则优化一般的json字符串
    PHP设计模式(三)
    PHP设计模式(二)
    PHP设计模式(一)
    PHP守护进程
    数据库的常用日志
    浅谈数据库事物
  • 原文地址:https://www.cnblogs.com/yjybupt/p/12930869.html
Copyright © 2011-2022 走看看