精华内容
下载资源
问答
  • 分类算法评估指标
    千次阅读
    2020-07-02 16:42:15

    在以往的分类问题求解当中,我们遇到的问题多为二分类问题,我们常用的评估指标有accuracy, precision, recall_score, f1-score, roc_auc_score等。但是在实际生活中,多分类问题也是大量存在的。这一小节,我们就详细的说明一下多分类问题的评估指标。
    iris.png

    我们先来看一下sklearn库中的二分类的评估指标,以recall_score为例。在recall_score方法中,有一个很重要的参数’average’,它的默认值为’binary’。当在默认参数的情况,该评估方法只能求解二分类问题,如果将该评估方法用于多分类问题,则系统会报错。但’average’同时也向我们提供了其他四个用于解决多分类的问题的参数’micro’,‘macro’,‘weighted’,‘samples’。下面我们以鸢尾花数据集为例来对这四个参数进行逐一说明。
    [sklearn.metrics.recall_score]('https://scikit-learn.org/stable/modules/generated/sklearn.metrics.recall_score.html
    ')

    sklearn.metrics.recall_score(y_true, y_pred, labels=None, 
    pos_label=1, average='binary', sample_weight=None, zero_division='warn')
    

    我们以recall_score的计算为例,recall_score的计算公式如下:
    R e c a l l = T P T P + F N Recall = \frac {TP}{TP + FN} Recall=TP+FNTP
    为了计算recall_score,我们必须先计算出TP,FN值。我们采用sklearn中的混淆矩阵来计算TP,FN值。

    #导入数据分析的常用工具包
    import numpy as np
    import pandas as pd
    import matplotlib.pyplot as plt
    import seaborn as sns
    %matplotlib inline
    
    #导入iris数据集
    from sklearn import datasets
    iris = datasets.load_iris()
    
    #对iris数据集进行切分
    from sklearn.model_selection import train_test_split
    X = iris.data
    Y = iris.target
    X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size = 0.3,random_state = 0)
    
    #建立一个基础的逻辑回归模型
    from sklearn.linear_model import LogisticRegression
    LR = LogisticRegression()
    LR.fit(X_train,Y_train)
    prediction = LR.predict(X_test)
    
    #计算混淆矩阵
    from sklearn.metrics import confusion_matrix
    cnf = confusion_matrix(Y_test,prediction,labels = [0,1,2])
    print(cnf)
    [out]:
    array([[16,  0,  0],
           [ 0, 13,  5],
           [ 0,  0, 11]], dtype=int64)
    

    该分类问题的混淆矩阵如下,列为真实类别,行为预测类别:

    class012
    01600
    10135
    20011

    混淆矩阵(confusion matrix)说明:
    TP(True positive):把正例正确地预测为了正例,如把类别0预测为0的个数有16个。
    FN(False negative):把正例错误地预测为了负列,如把类别1预测为2的个数有5个。
    FP(False positive):把负例错误地预测为了正例,假设0为正例,错误地把1,2预测为0就是FP。
    TN(True negative):把负例正确地预测为了负例,假设0为正例,1,2为负例,正确地把1,2预测为1,2就是TN。
    对于混淆矩阵,可以这样理解。第一个字母T/F,表示预测的正确与否;第二个字母P/N,表示预测的结果为正例或者负例。如TP就表示预测对了,预测的结果是正例,那它的意思就是把正例预测为了正例。

    1.Micro

    Micro:把所有类汇总在一起计算出最终recall值,其计算公式如下:
    R e c a l l = T P 0 + T P 1 + T P 2 T P 0 + F N 0 + T P 1 + F N 1 + T P 2 + F N 2 Recall = \frac{TP_0 + TP_1 + TP_2}{TP_0 + FN_0 + TP_1 + FN_1 + TP_2 + FN_2} Recall=TP0+FN0+TP1+FN1+TP2+FN2TP0+TP1+TP2
    在使用Micro参数时,其recall_score = (16+13+11)/(16+13+11+5) = 0.89。
    使用sklearn.metrics方法计算:

    from sklearn.metrics import recall_score
    recall_score(Y_test,prediction,average = 'micro')
    [out]:0.8888888888888888
    

    从上述计算结果可以看出,两者的计算结果是一致的,均为0.89。

    2.Macro

    Macro:分别计算出每一类的recall值,再取算数平均值,其计算公式如下:
    R e c a l l = ( T P 0 T P 0 + F N 0 + T P 1 T P 1 + F N 1 + T P 2 T P 2 + F N 2 ) ∗ 1 3 Recall =( \frac{TP_0}{TP_0 + FN_0} + \frac{TP_1}{TP_1 + FN_1} + \frac{TP_2}{TP_2 + FN_2}) * \frac{1}{3} Recall=(TP0+FN0TP0+TP1+FN1TP1+TP2+FN2TP2)31
    在使用Macro参数时,其recall_score = [16/(16+0+0) + 13/(0+13+5) + 11/(11+0+0)] * 1/3 = 0.91
    使用sklearn.metrics方法计算:

    from sklearn.metrics import recall_score
    recall_score(Y_test,prediction,average = 'macro')
    [out]:0.9074074074074074
    

    从上述计算结果可以看出,macro参数下的recall值为0.91。

    3.Weighted

    Weighted:分别计算每一类的recall值,再乘以各自的权重,然后求和,其计算公式如下:
    R e c a l l = T P 0 T P 0 + F N 0 ∗ W 0 + T P 1 T P 1 + F N 1 ∗ W 1 + T P 2 T P 2 + F N 2 ∗ W 2 Recall =\frac{TP_0}{TP_0 + FN_0} * W_0+ \frac{TP_1}{TP_1 + FN_1} * W_1 + \frac{TP_2}{TP_2 + FN_2} * W_2 Recall=TP0+FN0TP0W0+TP1+FN1TP1W1+TP2+FN2TP2W2
    计算各类的权重:

    W0,W1,W2 = np.bincount(Y_test) / len(Y_test)
    print(W0,W1,W2)
    [out]:0.35555555555555557 0.4 0.24444444444444444
    

    在使用weighted参数时,其recall_score = 16/(16+0+0) * 0.356 + 13/(0+13+5) * 0.4 + 11/(11+0+0) * 0.244 = 0.89
    使用sklearn.metrics方法计算:

    from sklearn.metrics import recall_score
    recall_score(Y_test,prediction,average = 'weighted')
    [out]:0.8888888888888888
    

    从上述计算结果可以看出,weighted参数下的recall值为0.89。

    4.Samples

    samples应用于多标签的分类问题,每一个样本拥有一个以上的标签。如一个感染病毒性肺炎的患者,就可以说他既属于病毒性肺炎患者这一类,也可以说他属于肺炎患者类。

    小结:
    1.对于多分类算法的评估,我们需要将sklearn.metrics.recall_score中的’average’参数修改为’micro’或’macro’或者’weighted’。
    2.在这个例子当中,我们以recall来举例,像其他的评估指标precision, roc_auc_score, f1-score都是采用同样的方法。

    文章参考:
    [1].https://zhuanlan.zhihu.com/p/59862986

    更多相关内容
  • 分类算法评估指标

    2019-11-26 10:14:34
    在数字面前没有主观臆想,而算法是数学的高度浓缩的结晶,所以算法的衡量也是通过数学的方法来进行计算,算法的目前就是结合现有的数据来预测出未来,算法解决的问题综合起来就是预测,有些问题是分类,有些问题是...

    算法模型的效果是通过什么指标来进行衡量的呢?针对不同类型的模型有不同的考量指标,本文主要针对分类模型的考量指标进行集中分析,一般情况下,要知道一个分类模型的性能,主要通过查看AUC与F1 score即可知道模型的性能,但是在实际应用中还是要根据不同的应用场景来针对性的对一部分参数进行调整,比如:用户召回与用户画像,这是两个不同的应用场景,但是在这两个场景下,需要考量的指标都有不同的侧重,用户召回强调召回率,在保证召回率的前提下精确率最优;用户画像强调精确率,在保证精确率的前提下,召回率最优,所以我们要因材施教、因地适宜。

    分类模型衡量指标:

    1.混淆矩阵

    正样本(Positive)负样本(Negatibe)
    分类正确正样本(True Positive)分类正确负样本(True Negatibe)
    分类错误正样本(False Positive)分类正确负样本(False Negatibe)

    2.准确率:分类正确样本在所有样本中的占比
    \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy = \frac{TP+TN}{TP+TN+FP+FN} Accuracy=TP+TN+FP+FNTP+TN
    3.精确率:分类结果正样本中有多少样本原为正样本,分类结果也为正样本§,其中分子为预测正确的正样本数,分母为预测为正样本的总数(预测正确的正样本+预测错误的正样本)
    \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} Precision=TP+FPTP
    4.召回率:在样本的角度进行考量,对测试集样本中的正负样本分别有多少被正确的预测,即样本中的正样本在分类结果中被分类为正样本,其中分子为预测正确的正样本数,分母为测试集中正样本的总数(预测正确的正样本数+预测错误的负样本数)
    \quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad\quad R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} Recall=TP+FNTP
    5.F1 Score:精确率和召回率的调和平均
    \quad\quad\quad\quad\quad\quad\quad 2 F 1 = 1 P r e c i s i o n + 1 R e c a l l \frac{2}{F_{1}} = \frac{1}{Precision}+ \frac{1}{Recall} F12=Precision1+Recall1 ===> F 1 = 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l = 2 ∗ T P 2 ∗ T P + F P + T N {F_{1}} = \frac{2*Precision*Recall}{Precision+Recall}= \frac{2*TP}{2*TP+FP+TN} F1=Precision+Recall2PrecisionRecall=2TP+FP+TN2TP

    ROC(Receiver Operating Characteristic)曲线和AUC常被用来评价一个二值分类器(binary classifier)的优劣
    6.ROC曲线:ROC曲线横坐标是FPR(False Positive Rate),纵坐标是TPR(True Positive Rate)
    其中: \quad F P R = F P F P + T N FPR = \frac{FP}{FP+TN} FPR=FP+TNFP \quad\quad\quad T P R = T P T P + F N TPR = \frac{TP}{TP+FN} TPR=TP+FNTP
    我们可以知道横坐标FPR、纵坐标TPR是在(0,1)的范围内,所以ROC曲线的横纵坐标都在(0,1)的范围内,进而ROC曲线在坐标轴上是在(0,1)、(1,1)、(1,0)、(0,0)四个点所定义的正方形内,很明显,这四个点分别代表着ROC曲线的极限情况,下面我们对ROC曲线进行分析:
    首先从第一个点(0,1),此时FPR=0,TPR=1,即正样本错误数为0,正样本的精确率为1,此时为模型的最优效果。
    7.AUC:AUC是ROC曲线下方面积值,由于ROC的横纵坐标的范围均在(0,1)之间,而模型的效果达到一定水平后,AUC的范围大概确定在(0.5,1)之间,由于ROC曲线无法标量模型的效果,所以采用计算ROC面积的方式来评价一个模型效果,AUC越大,模型分类效果越好。
    AUC对于模型评价的指标意义是模型预测正样本为正样本的概率大于预测负样本为正样本的概率的概率值,这句话可以结合ROC的概念进行理解,在ROC曲线中,横纵坐标均为正样本的预测比率。
    8.KS值:通过调整阈值可以得到多个(FPR,TPR)点,描点画图时把阈值作为横轴,FPR描点形成一条曲线,TPR描点形成一条曲线,这个与ROC曲线比较相似,在曲线上找到Max(TPR-FPR),这个值就是KS值,KS值越大,表示模型将正负样本能够区分开的程度越大,但是分隔并不一定表示正确。
    9.PR图:P-R曲线的P就是准确率(Precision),R就是召回率(Recall)。用P作为横坐标,R作为纵坐标,就可以画出P-R曲线。对于分类器,通过调整分类阈值,可以得到不同的P-R值,从而可以得到一条曲线(纵坐标为P,横坐标为R)。随着分类阈值从大到小变化,Precision减小,Recall增加。比较两个分类器好坏时,显然是查得又准又全的比较好,也就是的PR曲线越往坐标(1,1)的位置靠近越好。

    下面分别针对这些指标给出一些实例:
    1.混淆矩阵:
    在这里插入图片描述
    2.统计指标:准确率、精确率、召回率、F1指标
    在这里插入图片描述
    3.ROC曲线
    在这里插入图片描述
    4.KS值
    在这里插入图片描述
    5.PR曲线
    在这里插入图片描述

    展开全文
  • 分类算法常用的评价指标

    万次阅读 多人点赞 2019-06-18 16:23:27
    1,评价指标列表 2,基本概念 针对一个二分类问题,即将实例分成正类(positive)或负类(negative),在实际分类中会出现以下四种情况: (1)若一个实例是正类,并且被预测为正类,即为真正类(True Positive ...


    该博文内容大部分是参考自Poll的笔记dzl_ML两位博主的写作内容,再经过自己的学习,理解和整理后形成该文。参考资料的链接在最后部分给出。

    1,评价指标列表

    在这里插入图片描述

    2,基本概念

    针对一个二分类问题,即将实例分成正类(positive)或负类(negative),在实际分类中会出现以下四种情况:
    (1)若一个实例是正类,并且被预测为正类,即为真正类(True Positive TP)
    (2)若一个实例是正类,但是被预测为负类,即为假负类(False Negative FN)
    (3)若一个实例是负类,但是被预测为正类,即为假正类(False Positive FP)
    (4)若一个实例是负类,并且被预测为负类,即为真负类(True Negative TN)

    3,准确率(Accuracy)

    • 定义:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。
    • 计算公式: A c c u r a c y = T P + T N T P + T N + F P + F N Accuracy = \frac{TP+TN}{TP+TN+FP+FN} Accuracy=TP+TN+FP+FNTP+TN
    • 缺点:在正负样本不平衡的情况下,这个指标有很大的缺陷。例如:给定一组测试样本共1100个实例,其中1000个是正类,剩余100个是负类。即使分类模型将所有实例均预测为正类,Accuracy也有90%以上,这样就没什么意义了。

    4,精确率(Precision)、召回率(Recall)和F1值

    精确率和召回率是广泛用于信息检索和统计学分类领域的两个度量值,用来评价结果的质量。其中:

    • 精确率是检索出相关文档数与检索出的文档总数的比率(正确分类的正例个数占分类为正例的实例个数的比例),衡量的是检索系统的查准率 p r e c i s i o n = T P T P + F P precision = \frac{TP}{TP+FP} precision=TP+FPTP
    • 召回率是指检索出的相关文档数和文档库中所有的相关文档数的比率(正确分类的正例个数占实际正例个数的比例),衡量的是检索系统的查全率 r e c a l l = T P T P + F N recall = \frac{TP}{TP+FN} recall=TP+FNTP

    为了能够评价不同算法优劣,在Precision和Recall的基础上提出了F1值的概念,来对Precision和Recall进行整体评价。F1的定义如下: F 1 = 精 确 率 ∗ 召 回 率 ∗ 2 精 确 率 + 召 回 率 F1 = \frac{精确率*召回率*2}{精确率+召回率} F1=+2
    我们当然希望检索结果(分类结果)的Precision越高越好,同时Recall也越高越好,但事实上这两者在某些情况下有矛盾的。比如极端情况下,我们只搜索出了一个结果,且是准确的(分类后的正确实例只有一个,且该实例原本就是正实例),那么Precision就是100%,但是Recall就会很低;而如果我们把所有结果都返回(所有的结果都被分类为正实例),那么Recall是100%,但是Precision就会很低。因此在不同的场合中需要自己判断希望Precision比较高还是Recall比较高。如果是做实验研究,可以绘制Precision-Recall曲线来帮助分析。

    5,综合评价指标F-Measure

    Precision和Recall指标有时候会出现矛盾的情况,这样就需要综合考虑他们,最常见的方法就是F-Measure(又称为F-Score)。F-Score是Precision和Recall的加权调和平均: F = ( a 2 + 1 ) P ∗ R a 2 ( P + R ) F=\frac{(a^2+1)P*R}{a^2(P+R)} F=a2(P+R)(a2+1)PR
    当参数 a = 1 a=1 a=1时,就是最常见的F1.因此,F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

    6,ROC曲线和AUC

    6.1,TPR、FPR&TNR

    在介绍ROC和AUC之前,我们需要明确以下几个概念:

    • 真正类率(true positive rate, TPR),也称为sensitivity,刻画的是被分类器正确分类的正实例占所有正实例的比例。 T P R = T P T P + F N TPR=\frac{TP}{TP+FN} TPR=TP+FNTP
    • 负正类率(false positive rate, FPR),也称为1-specificity,计算的是被分类器错认为正类的负实例占所有负实例的比例。 F P R = F P F P + T N FPR =\frac{FP}{FP+TN} FPR=FP+TNFP
    • 真负类率(true negative rate, TNR),也称为specificity,刻画的是被分类器正确分类的负实例占所有负实例的比例。 T N R = 1 − F P R = T N F P + T N TNR = 1 - FPR = \frac{TN}{FP+TN} TNR=1FPR=FP+TNTN

    6.2 ,为什么引入ROC曲线?

    • Motivation1:在一个二分类模型中,对于所得到的连续结果,假设已确定一个阈值,比如说0.6,大于这个值的实例为正类,小于这个值则为负类。如果减小阈值,比如减到0.5,固然能之别出更多的正类,也就是提高了识别出的正例占所有正例的比例,即TPR值变大;但同时也将更多的负实例当作了正实例,即,提高了FPR。为了形象化这一变化,引入了ROC,ROC可以用于评价一个分类器。
    • Motivation2:在类不平衡的情况下,如正样本90个,负样本10个,直接把所有样本分类为正样本,得到识别率为90%。但这显然是没有意义的。单纯根据Precision和Rcall来衡量算法的优劣已经不能表征这种病态问题。

    6.3 ,什么是ROC曲线?

    ROC曲线:接收者操作特征(receiver operating characteristic),ROC曲线上每个点反映着对同一信号刺激的感受性。

    • 横轴:负正类率(FPR,特异度);
    • 纵轴:真正类率(TPR,灵敏度)。

    以逻辑回归分类器(LR)举例,LR给出了针对每个实例为正类的概率,那么通过设定一个阈值如0.6,概率大于等于0.6的为正类,小于0.6的为负类。对应的就可以算出一组(FPR,TPR),在平面中得到对应坐标点。随着阈值的逐渐减小,越来越多的实例被划分为正类,但是这些正类汇中同样也掺杂着真正的负实例,即TPR和FPR会同时增大。阈值最大时,对应坐标点为(0,0),阈值最小时,对应坐标点(1,1)。如下这幅图,图(a)中实线为ROC曲线,线上每个点对应一个阈值。
    在这里插入图片描述
    理想目标: TPR=1, FPR=0,即图中(0,1)点。故ROC曲线越靠拢(0,1)点,即,越偏离45度对角线越好。

    6.4,如何画ROC曲线

    假设已经得出一系列被划分为正类的概率,然后按照大小排序,下图是一个示例,图中共有20个测试样本,“Class”一栏表示每个测试样本真正的标签(p表示正样本,n表示负样本),“Score”表示每个测试样本属于正样本的概率。
    在这里插入图片描述
    接下来,我们从高到低,依次将“Score”值作为阈值threshold,当测试样本属于正样本的概率大于或等于这个threshold时,我们认为它为正样本,否则为负样本。举例来说,对于图中的第4个样本,其“Score”值为0.6,那么样本1,2,3,4都被认为是正样本,因为它们的“Score”值都大于等于0.6,而其他样本则都认为是负样本。每次选取一个不同的threshold,我们就可以得到一组FPR和TPR,即ROC曲线上的一点。这样一来,我们一共得到了20组FPR和TPR的值,将它们画在ROC曲线的结果如下图:
    在这里插入图片描述

    6.5,什么是AUC曲线?

    AUC(Area Under Curve):ROC曲线下的面积,介于0.1和1之间。AUC作为数值可以直观的评价分类器的好坏,值越大越好。
    AUC的物理意义:首先AUC值是一个概率值。假设分类器的输出是样本属于正类的Score(置信度),则AUC的物理意义为,任取一对(正、负)样本,正样本的Score大于负样本的Score的概率。

    6.6,怎样计算AUC?

    • 方法一:AUC为ROC曲线下的面积,那我们直接极端面积可得。面积为一个个小的梯形面积之和。计算的精度与阈值的精度有关。

    • 方法二:根据AUC的物理意义,我们计算正样本Score大于负样本Score的概率。取 N ∗ M ( N 为 正 样 本 数 , M 为 负 样 本 数 ) N*M(N为正样本数,M为负样本数) NM(NM)个二元组,比较Score,最后得到AUC。时间复杂度为 O ( N ∗ M ) O(N*M) O(NM)
      具体的计算方法详见AUC的计算方法

    • 方法三:我们首先把所有样本按照score排序(从小到大或从大到小),依次用rank表示他们,如,按从大到小排序的时候,最大score的样本序号值 r a n k = n rank=n rank=n,其中 n = M + N n=M+N n=M+N,其次是 n − 1 n-1 n1。然后利用下面的公式计算AUC,
      A U C = ∑ 所 有 正 样 本 r a n k − M ∗ ( M − 1 ) 2 M ∗ N AUC = \frac{\sum_{所有正样本}rank-\frac{M*(M-1)}{2}}{M*N} AUC=MNrank2M(M1)
      其中, ∑ 所 有 正 样 本 r a n k \sum_{所有正样本}rank rank 表示所有正样本的序号值 r a n k rank rank之和;时间复杂度是 O ( M + N ) O(M+N) O(M+N)
      具体的计算案例详见AUC的计算方法

    7,为什么使用ROC和AUC评价分类器呢?

    既然已经这么多标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变换的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现样本类不平衡,即正负样本比例差距较大,而且测试数据中的正负样本也可能随着时间变化。下图是ROC曲线和Presision-Recall曲线的对比:
    在这里插入图片描述
    在上图中,(a)和©为Roc曲线,(b)和(d)为Precision-Recall曲线。
    (a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,©(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果,可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线变化较大。

    8,参考资料

    https://www.cnblogs.com/maybe2030/p/5375175.html#_label3
    https://www.cnblogs.com/dlml/p/4403482.html
    https://blog.csdn.net/qq_22238533/article/details/78666436

    展开全文
  •     在机器/深度学习分类任务中,评价模型性能的指标有很多种,在本文中将详细简介一下各个指标的含义。 1、模型评价术语     在本文中我们假设是二分类问题,即只分两类:正例(positive)和负例(negative...

        在机器/深度学习分类任务中,评价模型性能的指标有很多种,在本文中将详细简介一下各个指标的含义。

    1、模型评价术语

        在本文中我们假设是二分类问题,即只分两类:正例(positive)和负例(negative)。那么,在实际预测中就会存在以下几种情况:

    1. True positives(TP): 被正确地划分为正例的个数,即实际为正例且被预测为正例的实例数,这个在医学中称为真阳性;
    2. False positives(FP): 被错误地划分为正例的个数,即实际为负例但被预测为正例的实例数,这个在医学中称为假阳性;
    3. False negatives(FN):被错误地划分为负例的个数,即实际为正例但被预测为负例的实例数,这个在医学中称为假阴性;
    4. True negatives(TN): 被正确地划分为负例的个数,即实际为负例且被预测为负例的实例数,这个在医学中称为真阴性。

    在这里插入图片描述

    2、主要指标

    1)精度(precision)
        precision=TP/(TP+FP),精度是精确性的度量,表示被分为正例的示例中实际为正例的比例。
    2)召回率(recall)
        召回率是覆盖面的度量,度量有多个正例被分为正例,recall=TP/(TP+FN)=TP/P。
    3)正确率(accuracy)
        正确率是我们最常见的评价指标,accuracy = (TP+TN)/(P+N),正确率是被分对的样本数在所有样本数中的占比,通常来说,正确率越高,分类器越好。
    4)错误率(error rate)
        错误率则与正确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(P+N),对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate。
    5)灵敏度(sensitivity)
        sensitivity = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力,其实灵敏度就是召回率,只是说法不同而已。
    6)特异性(specificity)
        specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

    3、综合指标

        综合指标其实应用最多的有两个,一个是ROC曲线,一个是PR曲线。其中PR曲线在之前的文章中介绍过了,可点击此处查看。下面主要讲一下ROC曲线。
        ROC曲线是(Receiver Operating Characteristic Curve,受试者工作特征曲线)的简称,是以灵敏度为纵坐标,以1减去特异性为横坐标绘制的性能评价曲线。我们将其绘制在同一笛卡尔坐标系中,ROC曲线越靠近左上角,说明其对应模型越可靠。也可以通过ROC曲线下面的面积(Area Under Curve, AUC)来评价模型,AUC越大,模型越可靠。具体如下图所示:
    在这里插入图片描述
        从上图可以看出,相对于A和C,B点的模型可靠性更可靠。在实际应用中,我应用最多的还是PR曲线,在保证精度的同时,召回率越大越好。

    展开全文
  • 分类算法评价指标

    2021-10-14 11:44:46
    在不同的数据集上表现的效果也不同,我们需要根据特定的任务进行算法的选择,如何选择分类,如何评价一个分类算法的好坏,前面关于决策树的介绍,我们主要用的正确率(accuracy)来评价分类算法。 正确率确实是一个...
  • 在模型评估过程中,往往需要使用多种不同的指标进行评估,在诸多的评价指标中,大部分指标只能片面的反应模型的一部分性能,如果不能合理的运用评估指标,不仅不能发现模型本身的问题,而且会得出错误的结论。...
  • 准确率有一个缺点,就是数据的样本不均衡,这个指标是不能评价模型的性能优劣的。 假如一个测试集有正样本99个,负样本1个。模型把所有的样本都预测为正样本,那么模型的Accuracy为99%,看评价指标,模型的效果很好...
  • 有三种不同的方法来评估一个模型的预测质量: (1)estimator的score方法:sklearn中的estimator都具有一个score方法,它提供了一个缺省的评估法则来解决问题。 (2)Scoring参数:使用cross-validation的模型评估...
  • 分类算法常见的评估指标

    千次阅读 2021-03-16 16:26:39
    分类算法常见的评估指标如下: 其实多分类的评价指标的计算方式与二分类完全一样,只不过我们计算的是针对于每一类来说的召回率、精确度、准确率和 F1分数。 1、混淆矩阵(Confuse Matrix) (1)若一个实例是正...
  • 1、混淆矩阵(Confuse Matrix) (1)若一个实例是正类,并且被预测为正类,即为真正类TP(True Positive ) (2)若一个实例是正类,但是被预测为负类,...准确率是常用的一个评价指标,但是不适合样本不均衡的情况。
  • //2019.08.14#机器学习算法评价分类结果1、机器学习算法的评价指标一般有很多种,对于回归问题一般有MAE,MSE,AMSE等指标,而对于分类算法的评价指标则更多:准确度score,混淆矩阵、精准率、召回率以及ROC曲线、PR...
  • 分类算法评价标准

    千次阅读 2017-04-06 16:37:08
    在不同的数据集上表现的效果也不同,我们需要根据特定的任务进行算法的选择,如何选择分类,如何评价一个分类算法的好坏,前面关于决策树的介绍,我们主要用的正确率(accuracy)来评价分类算法。正确率确实是一个很...
  • 机器学习分类算法常用评价指标

    千次阅读 2018-10-16 17:42:31
    目录 1. 准确率,召回率,精确率,F1-...3. Python3 sklearn实现分类评价指标 1. 准确率,召回率,精确率,F1-score,Fβ,ROC曲线,AUC值 为了评价模型以及在不同研究者之间进行性能比较,需要统一的评价标准。...
  • 数据挖掘十大算法之分类算法(分类介绍及评价指标) 接上篇文章,接下来学习挖掘算法中的分类算法: 首先我们应该知道数据挖掘十大算法中可以简单的进行分类,分为分类算法,聚类算法和关联规则三大类 算法分类 连接...
  • 分类算法分类算法介绍概念分类算法常见分类算法NBSLRSVM算法ID3算法C4.5 算法C5.0算法KNN 算法ANN 算法选择分类算法分类算法性能评估 分类算法介绍 概念 数据挖掘任务通常分为两大类: 预测任务,根据其他属性的值...
  • 分类算法评价指标

    2021-04-25 19:57:44
    分类算法评价指标评价指标1.准确率(Accuracy)2.精准率(Presicion)3.召回率(Recall)4.F1 Score 评价指标 混淆矩阵 1.准确率(Accuracy) 预测正确得样本数量占总量的百分比,具体的公式如下: Accuracy=TP+TN...
  • 分类算法常用评估指标:准确率,查准率,查全率,F1-score,PR曲线,ROC曲线和AUC指标,ROC曲线下的面积就是AUC指标. 回归算法的评估指标:R方范围[-inf,1] (真实值与预测 ),MSE,MAE,RMSE 手肘法获取K-means的最优K值 计算...
  • 分类算法评估方法

    千次阅读 2019-06-24 15:28:56
    1) True positives(TP): 被正确地划分为正例的个数,即实际为正例且被分类器划分为正例的实例数; 2) False positives(FP): 被错误地划分为正例的个数,即实际为负例但被分类器划分为正例的实例数; 3) False ...
  • 分类算法评估指标有很多种,选择使用哪一种评估指标,应该根据实际情况来进行选择,而不能一概而定。 混淆矩阵 我们先来了解一下混淆矩阵,后面的分类评估指标其实都是在这个基础上发展而来,理解了这个,再去学习...
  • 分类 混淆矩阵: 真实情况\预测结果 正例 反例 正例 TP(真正例) FN(假反例) 反例 FP(假正例) TN(真反例) 根据上表显然有TP+FP+TN+FN=样例总数TP+FP+TN+FN=样例总数 TP+FP+TN+FN=样例总数 准确率...
  • 机器学习分类算法模型评价指标

    千次阅读 2019-10-14 11:18:13
    概览 目前,业内对于机器学习,数据挖掘,...这篇文章主要总结的是分类算法(二分类)的一些模型评价指标。 1.混淆矩阵 要了解准确率和召回率,先要知道什么是混淆矩阵,它反映的是预测值与真实值的预测情况,它共有...
  • 主要为大家详细介绍了python机器学习之KNN分类算法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • 分类算法评估指标 精度(Accuracy) 召回率 精准率 AUC ROC PR
  • 分类算法评价

    2018-01-25 11:24:48
    一、前言 ...不同的分类算法有不同的特定,在不同的数据集上表现的效果也不同,如何评价一个分类算法的好坏,分类器的主要评价指标有准确率(Precision)、召回率(Recall)、Fb-score、ROC、AOC等。
  • 分类算法

    千次阅读 2020-12-09 18:53:16
    逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归。 2. 应用场景 数据不均衡问题 广告点击率 是否为垃圾邮件 是否患病 金融诈骗 虚假账号 3. 原理 线性...
  • 常见的分类算法包括: 朴素贝叶斯 支持向量机 逻辑回归 决策树 KNN临近算法 目录评价指标指标准确率 Accuracy精确率 Precision召回率 RecallF-Score图指标Precision-Recall PR曲线ROC曲线 评价指标指标 准确...
  • 目录1 分类2 K-邻近2.1 简介2.2 算法过程2.3 选择一个正确的K值3 分类评估指标 1 分类 (1)概念 • 一种监督学习方法 • 分类一些未知的事物 • 目标属性是一个分类变量 (2)工作机制 举例:分类向银行提出贷款的...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 100,959
精华内容 40,383
关键字:

对分类算法的评价标准