zoukankan      html  css  js  c++  java
  • 机器学习模型评价指标 -- 混淆矩阵

    机器学习模型评价指标 – 混淆矩阵

    在机器学习领域中,混淆矩阵(confusion matrix)是一种评价分类模型好坏的形象化展示工具。其中,矩阵的每一列表示的是模型预测的样本情况;矩阵的每一行表示的样本的真实情况。

    1. 混淆矩阵的举例

    例如用一个分类模型来判别一个水果是苹果还是梨,混淆矩阵将会模型的预测结果总结成如下表所示的表格。

     模型预测结果 
        苹果
    真实结果 苹果 10
      3

    通过上述表格可以看出,样本的数量一共是10+2+3+15=3010+2+3+15=30个样本。其中苹果有10+2=1210+2=12个,梨有3+15=183+15=18个。该模型预测的苹果的数量是10+3=1310+3=13个,有1010个是预测正确的,33个是预测错误的。该模型预测的梨的数量是2+15=172+15=17个,其中有1515个是预测正确的,22个是预测错误的。

    2. 混淆矩阵

    对于一个二分类的模型,其模型的混淆矩阵是一个2×22×2的矩阵。如下图所示:

     Predicted condition 
        positive
    True condition positive True Positive
      negative False Positive

    混淆矩阵比模型的精度的评价指标更能够详细地反映出模型的”好坏”。模型的精度指标,在正负样本数量不均衡的情况下,会出现容易误导的结果。

    其中,列是模型预测的结果,行是样本真实的结果。四个矩阵元素的含义分别是:

    2.1 True Positive

    真正类(TP),样本的真实类别是正类,并且模型预测的结果也是正类。

    2.2 False Negative

    假负类(FN),样本的真实类别是正类,但是模型将其预测成为负类。

    2.3 False Positive

    假正类(FP),样本的真实类别是负类,但是模型将其预测成为正类。

    2.4 True Negative

    真负类(TN),样本的真实类别是负类,并且模型将其预测成为负类。

    3. 混淆矩阵延伸出的各个评价指标

    从混淆矩阵中,可以衍生出各种评价的指标。如下是截取的wiki上的一个截图(https://en.wikipedia.org/wiki/Confusion_matrix) 
    这里写图片描述
    各个指标的定义以及含义如下所示:

    3.1 Accuracy

    模型的精度,即模型预测正确的个数 / 样本的总个数 
    Accuracy=TP+TNTP+FN+FP+TNAccuracy=TP+TNTP+FN+FP+TN 
    一般情况下,模型的精度越高,说明模型的效果越好。

    3.2 Positive predictive value (PPV, Precision)

    查准率,阳性预测值,在模型预测为正类的样本中,真正为正类的样本所占的比例。 
    Precision=TPTP+FPPrecision=TPTP+FP 
    一般情况下,查准率越高,说明模型的效果越好。

    3.3 False discovery rate (FDR)

    错误发现率,表示在模型预测为正类的样本中,真正的负类的样本所占的比例。 
    FDR=FPTP+FPFDR=FPTP+FP 
    一般情况下,错误发现率越小,说明模型的效果越好。

    3.4 False omission rate (FOR)

    错误遗漏率,表示在模型预测为负类的样本中,真正的正类所占的比例。即评价模型”遗漏”掉的正类的多少。 
    FOR=FNFN+TNFOR=FNFN+TN 
    一般情况下,错误遗漏率越小,模型的效果越好。

    3.5 Negative predictive value (NPV)

    阴性预测值,在模型预测为负类的样本中,真正为负类的样本所占的比例。 
    NPV=TNFN+TNNPV=TNFN+TN 
    一般情况下,NPV越高,说明的模型的效果越好。

    3.6 True positive rate (TPR, Recall)

    召回率,真正类率,表示的是,模型预测为正类的样本的数量,占总的正类样本数量的比值。 
    Recall=TPTP+FNRecall=TPTP+FN 
    一般情况下,Recall越高,说明有更多的正类样本被模型预测正确,模型的效果越好。

    3.7 False positive rate (FPR), Fall-out

    假正率,表示的是,模型预测为正类的样本中,占模型负类样本数量的比值。 
    Fallout=FPFP+TNFall−out=FPFP+TN 
    一般情况下,假正类率越低,说明模型的效果越好。

    3.8 False negative rate (FNR), Miss rate

    假负类率,缺失率,模型预测为负类的样本中,是正类的数量,占真实正类样本的比值。 
    FNR=FNFN+TNFNR=FNFN+TN

    缺失值越小,说明模型的效果越好。

    3.9 True negative rate (TNR)

    一般情况下,真负类率越高,说明的模型的效果越好 
    TNR=TNFN+TN

     

    混淆矩阵是除了ROC曲线和AUC之外的另一个判断分类好坏程度的方法。

    以下有几个概念需要先说明:

    TP(True Positive): 真实为0,预测也为0

    FN(False Negative): 真实为0,预测为1

    FP(False Positive): 真实为1,预测为0

    TN(True Negative): 真实为0,预测也为0

    :分类模型总体判断的准确率(包括了所有class的总体准确率)

    : 预测为0的准确率

    : 真实为0的准确率

    : 真实为1的准确率

    : 预测为1的准确率

    : 对于某个分类,综合了Precision和Recall的一个判断指标,F1-Score的值是从0到1的,1是最好,0是最差

    : 另外一个综合Precision和Recall的标准,F1-Score的变形

    举个经典的二分类例子:

                          

    ,            ,             

    如果是多分类的呢?举一个三分类的例子:

    ,     ,     

    因此我们知道,计算Specificity,Recall,Precision等只是计算某一分类的特性,而Accuracy和F1-Score这些是判断分类模型总体的标准。我们可以根据实际需要,得出不同的效果。

  • 相关阅读:
    Redis(五)——主从做读写分离原理与优化
    Redis(四)——持久化方案(RDB和AOF使用)
    Redis(三)——高级用法(GEO地理位置信息)
    Redis(二)——五大数据类型的基本操作(字符串类型,哈希类型,列表类型,集合类型,有序集合类型)
    Redis(一)——redis初识,redis安装和启动
    15 Ajax技术
    ORM多表分组、F与Q查询
    ORM多表操作
    ORM单表操作
    CentOS 7 下 rdesktop 的安装
  • 原文地址:https://www.cnblogs.com/xiaolong19910914/p/8733410.html
Copyright © 2011-2022 走看看