分类指标

作者: monster_mark | 来源:发表于2019-01-05 23:05 被阅读3次

评估结果用于反应模型的好坏,必须设计合适的评估指标来测量该模型的好坏。模型的好坏是相对的,使用不同的评估指标对模型的判定会得到不一样的结果。
评估指标根据任务类型可以分为:分类指标、回归指标、聚类指标和排序指标等,本文主要关注分类指标。
分类的评价指标一般是分类准确率(accuracy):对于给定的数据集,分类正确的样本数与总的样本数之比。准确率在二分类与多分类都能应用。
对于二分类常用的指标为精确率(precision)与召回率(recall)。


混淆矩阵

根据上图的混淆矩阵可以得出精确率与召回率的定义:
TP—将正类预测为正类的样本数;
FN—将正类预测为负类的样本数;
FP—将负类预测为正类的样本数;
TN—将负类预测为负类的样本数;
精确率定义为:
P = \frac{TP}{TP + FP}
召回率定义为:
R = \frac{TP}{TP + FN}
精确率可以理解为在所有预测为正类这个事件的准确率有多高,召回率可以理解为真正的正类有多少被挑选了出来。理想情况下,精确率和召回率都是越高越好,但是事实一般相反,精确率高的时候,召回率低;召回率高的时候,精确率低。因此需要结合实际业务看更关注哪一个指标来判定模型好坏,为了达到更好效果,设计了一些综合考虑精确率与召回率的指标,如$F_1$值,$F_1$值是精确率和召回率的调和平均值:
\frac{2}{F_1} = \frac{1}{P} + \frac{1}{R}
精确率和召回率都高时,F_1值也会高。

ROC与AUC

[ROC曲线]作为常用的二分类评价指标,其全称为接收者操作特征曲线(Receiver Operating Characteristic)。该曲线纵坐标真正率(TPR),横坐标为假正率(FPR),其定义如下:
TPR = \frac{TP}{TP + FN}
FPR = \frac{FP}{FP + TN}
则ROC曲线位于横纵坐标阈值都为0-1之间,因此首先考虑4个特殊点(0,0)、(1, 1)、(0, 1)、(1, 0)。(0, 0)点表示TPR=FPR=0,即TP=FP=0,表示该分类器将所有样本都分为负类。同理,(1, 1)表示分类器将所有样本都分类为正类。(0, 1)点表示:FPR=0,TPR=1;意味着FP=0,FN=0,这样就是一个完美的分类器,正负类都分类完全正确。(1, 0)点表示TP=0, TN=0,这就是最糟糕的一个分类器,完美错过所有正确答案。综上,ROC曲线上的点越靠近左上方,那么该分类器就越好。

制作ROC曲线

每一对TPR与FPR值可以描绘出一个点,为了得到一条ROC曲线,需要调整不同的预测概率,来得到不同TPR于FPR值对,这样就可以得到一条ROC曲线。AUC(Area under the Curve of ROC)即ROC曲线下的面积,取值越大说明正确率越高。

sklearn包关于分类指标的API

sklearn.metrics模块实现了一些loss, score以及一些工具函数来计算分类性能。
一些二分类(binary classification)使用的case:

  • matthews_corrcoef(y_true, y_pred):Matthews相关系数,用于度量二分类的质量
  • precision_recall_curve(y_true, probas_pred):P-R曲线
  • roc_curve(y_true, y_score[, pos_label, …]):ROC曲线
    一些多分类(multiclass)使用的case:
  • confusion_matrix(y_true, y_pred[, labels]):混淆矩阵
  • hinge_loss(y_true, pred_decision[, labels, …])
    一些多标签(multilabel)的case:
  • accuracy_score(y_true, y_pred[, normalize, …]):准确率
  • classification_report(y_true, y_pred[, …]):分类报告,包含精确率、召回率等。
  • f1_score(y_true, y_pred[, labels, …]):F_1
  • fbeta_score(y_true, y_pred, beta[, labels, …])
  • hamming_loss(y_true, y_pred[, classes])
  • jaccard_similarity_score(y_true, y_pred[, …])
  • log_loss(y_true, y_pred[, eps, normalize, …]):logistic回归loss,或者交叉熵loss(cross-entropy loss),用于概率估计。
  • precision_recall_fscore_support(y_true, y_pred)
  • precision_score(y_true, y_pred[, labels, …])
  • recall_score(y_true, y_pred[, labels, …])
  • zero_one_loss(y_true, y_pred[, normalize, …])
    还有一些可以同时用于二标签和多标签(不是多分类)问题:
  • average_precision_score(y_true, y_score[, …])
  • roc_auc_score(y_true, y_score[, average, …])

相关文章

  • 数据挖掘

    预测指标 分类常见的评估指标:对于二类分类器/分类算法,评价指标主要有accuracy, [Precision,R...

  • 分类指标

    评估结果用于反应模型的好坏,必须设计合适的评估指标来测量该模型的好坏。模型的好坏是相对的,使用不同的评估指标对模型...

  • 数据化运营速成手册

    总结: 1、定义数据的维度和指标:维度分类,指标定量 变量分类:分类变量、有序变量(有大小关系不能四则运算,年级、...

  • 分类器指标

    二值分类器指标: precision,recall,F-score[^1],以及我们今天要讨论的ROC和AUC R...

  • 分类评价指标

    1. 混淆矩阵(Confusion matrix) 定义: 混淆矩阵是数据科学、数据分析和机器学习中分类模型预测结...

  • 【数据产品设计】-03指标体系设计

    完整数据指标体系应该包含这些分类。时间性质分类:时点指标(某个时点数据),时期指标(某段时期的可累加数据)。总体特...

  • AI面试第六弹(评价指标)

    一、分类问题指标 分类问题的评价指标多是基于以下混淆矩阵·真实值是positive,模型认为是positive的数...

  • 监控笔记

    监控分类 系统 业务 监控方法 探针(probing) 内省(introspection) 监控指标 指标设计方法...

  • 4.machine_learning_eval_metric_a

    1.机器学习指标ROC与AUC 1.1ROC与AUC AUC是一种模型分类指标,且仅仅是二分类模型的评价指标。AU...

  • 数据分析思维读书笔记

    推荐书籍:《数据分析思维:分析方法和业务知识》 一、业务指标: 1.1 指标分类: 1.2 如何选择指标: · 北...

网友评论

    本文标题:分类指标

    本文链接:https://www.haomeiwen.com/subject/ywcjrqtx.html