分类指标评价定义及代码(准确率,精确率,召回率,F1,AUC)

对于分类问题进行了一个小的总结,并给出python代码方便各位直观的了解其含义。

目录

准确率

精确率

召回率

 F1

AUC


  • 准确率

  1. 定义:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。
  2. 公式:Accuracy= \frac{TP+TN}{TP+TN+FP+FN}

  3. 缺点:在正负样本不平衡的情况下,这个指标有很大的缺陷。

  4. 代码:

    ## accuracy
    from sklearn.metrics import accuracy_score
    y_pred = [0, 1, 0, 1]
    y_true = [0, 1, 1, 1]
    print('ACC:',accuracy_score(y_true, y_pred))
    ACC: 0.75

     

  • 精确率

  1. 定义:精确率是检索出相关文档数与检索出的文档总数的比率(正确分类的正例个数占分类为正例的实例个数的比例),衡量的是检索系统的查准率
  2. 公式:precision= \frac{TP}{TP+FP}
  3. 代码:
    from sklearn import metrics
    y_pred = [0, 1, 0, 0]
    y_true = [0, 1, 1, 1]
    print('Precision',metrics.precision_score(y_true, y_pred))
    Precision 1.0

     

  • 召回率

  1. 定义:召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率(正确分类的正例个数占实际正例个数的比例),衡量的是检索系统的查全率
  2. 公式:recall= \frac{TP}{TP+FN}
  3. 代码:
    from sklearn import metrics
    y_pred = [0, 1, 0, 0]
    y_true = [0, 1, 1, 1]
    print('Recall',metrics.recall_score(y_true, y_pred))
    Recall 0.3333333333333333

     

  •  F1

  1. 定义:F1分数(F1-score)是分类问题的一个衡量指标。它是精确率和召回率的调和平均数,最大为1,最小为0。
  2. 代码:
    from sklearn import metrics
    y_pred = [0, 1, 0, 0]
    y_true = [0, 1, 1, 1]
    print('F1-score:',metrics.f1_score(y_true, y_pred))
    F1-score: 0.5

     

  • AUC

  1. 定义:AUC是一个模型评价指标,只能用于二分类模型的评价. AUC是Area under curve的首字母缩写。 Area under curve是什么呢,从字面理解,就是一条曲线下面区域的面积。

    详解:https://www.zhihu.com/question/39840928
  2. 代码: 

    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])
    print('AUC socre:',roc_auc_score(y_true, y_scores))
    AUC socre: 0.75

     


版权声明:本文为holal原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。