精华内容
下载资源
问答
  • 机器学习评价指标

    千次阅读 2018-10-05 21:19:37
    2 拟合 2.1 平均绝对误差 2.2 平均平方误差 2.3 解释变异 2.4 决定系数 3 聚类 3.1 兰德指数 3.2 互信息 3.3 轮廓系数 4 信息检索 在使用机器学习算法的过程中,针对不同场景需要不同的评价指标。...

    目录

    1 分类

    1.1 混淆矩阵

    1.2  精确率与召回率

    1.3 ROC和AUC

    1.4 对数损失

    1.5 铰链损失(Hinge loss)

    1.6 kappa系数

    1.7 准确率

    1.8 海明距离

    1.9 杰卡德相似系数

    1.10 多标签排序

    1.10.1 涵盖误差

    1.10.2 标签排序平均精度

    1.10.3 排序误差

    2 拟合(回归)

    2.1 平均绝对误差

    2.2 平均平方误差

    2.3 解释变异

    2.4 决定系数

    3 聚类

    3.1 兰德指数

    3.2 互信息

    3.3 轮廓系数

    4 信息检索


    在使用机器学习算法的过程中,针对不同场景需要不同的评价指标。

    1 分类

    1.1 混淆矩阵

           混淆矩阵又被称为错误矩阵,是除了ROC曲线和AUC之外的另一个判断分类好坏程度的方法。下面给出二分类的混淆矩阵:

     Predicted as PositivePredicted as Negative
    Labeled as PositiveTrue Positive(TP)False Negative(FN)
    Labeled as NegativeFalse Positive(FP)True Negative(TN)

    如上表,可以将结果分为四类:
    * 真正例(True Positive, TP):真实类别为正例,预测类别为正例;
    * 假负例(False Negative, FN):真实类别为正例,预测类别为负例;
    * 假正例(False Positive, FP):真实类别为负例,预测类别为正例 ;
    * 真负例(True Negative, TN):真实类别为负例,预测类别为负例;

    进一步可以推出这些指标:
    * 真正率(True Positive Rate, TPR),又名灵敏度(Sensitivity):被预测为正的正样本数 / 正样本实际数,即:
    * 假负率(False Negative Rate, FNR):被预测为负的正样本数/正样本实际数,即:
    * 假正率(False Positive Rate, FPR):被预测为正的负样本数/负样本实际数,即:
    *真负率(True Negative Rate, TNR),特异度(Specificity):被预测为负的负样本数/负样本实际数,即:

    进一步,由混淆矩阵可以计算以下评价指标:

    • 准确率(Accuracy):分类正确的样本数/所有样本数量,即:

    • 平均准确率(Average per-class accuracy):每个类别下的准确率的算术平均,即:

    • 错误率:分类错误的样本/所有样本的数量,即:

    1.2  精确率与召回率

    • 精确率,又称查准率(Precision):指的是模型判为正的所有样本中有多少是真正的正样本;正样本的预测数/被预测为正样本的数量(注意:精确率和准确率不同),即: ;挑出的西瓜中有多少比例是好瓜

    • 召回率(Recall)又称查全率:指的是所有正样本有多少被模型判为正样本,即召回;分类正确的正样本个数占正样本个数的比例,即:所有好瓜中有多少比例被挑出来

    分析查准率查全率是一对矛盾的度量。若要让查准率比较高,则只挑最有把握的瓜,则难免会漏掉不少好瓜,查全率较低;若要查全率比较高,则通过增加选瓜的数量来实现,若全部瓜都参选,则查全率最高,此时,查准率较低;
    应用:在推荐系统中,为了少打扰用户,则查准率比较高;在逃犯信息检索系统中,更希望尽可能少漏掉逃犯,则查全率比较高。

    F1-Score:

            在介绍F1-Score之前,首先介绍调和平均值,调和平均值为:又称倒数平均数,是总体各统计变量倒数的算术平均数的倒数。

    F1度量的一般形式——Fβ能够表达对差准率 和查询率的不同偏好:

           

            其中,β>1时,查全率更有影响;β=1时,退化为标准的F1;β<1时,查准率更有影响。

            F1值的一般形式为差准率和查全率的调和均值。 是分类与信息检索中最常用的指标之一。

           

    1.3 ROC和AUC

            ROC(Receiver Operating Characteristic)曲线,以及AUC(Area Under Curve),常用来评价一个二值分类器的优劣,ROC横轴为false positive rate,FPR,“假正例率”,也就是误判为正确的比例;纵轴是true positive rate,TPR,“真正例率”,也就是正确的判断为正确的比例。

            设模型输出的正样本集合为 A ,真正的正样本集合为 B ,所有样本集合为 CC ,我们称 真正率(True-positive rate), 假正率(False-positive rate)。定义如下:
    这里写图片描述

            考虑ROC曲线图中的四个点和一条线。第一个点,(0,1),即FPR=0, TPR=1,这意味着FN(false negative)=0,并且FP(false positive)=0。Wow,这是一个完美的分类器,它将所有的样本都正确分类。第二个点,(1,0),即FPR=1,TPR=0,类似地分析可以发现这是一个最糟糕的分类器,因为它成功避开了所有的正确答案。第三个点,(0,0),即FPR=TPR=0,即FP(false positive)=TP(true positive)=0,可以发现该分类器预测所有的样本都为负样本(negative)。类似的,第四个点(1,1),分类器实际上预测所有的样本都为正样本。经过以上的分析,我们可以断言,ROC曲线越接近左上角,该分类器的性能越好。

    由上表可得出横,纵轴的计算公式:

    (1)真正类率(True Postive Rate)TPR: TP/(TP+FN),代表分类器预测的正类中实际正实例占所有正实例的比例。Sensitivity

    (2)负正类率(False Postive Rate)FPR FP/(FP+TN),代表分类器预测的正类中实际负实例占所有负实例的比例。1-Specificity

    (3)真负类率(True Negative Rate)TNRTN/(FP+TN),代表分类器预测的负类中实际负实例占所有负实例的比例,TNR=1-FPR。Specificity

                  

            AUC分数是曲线下的面积(Area under curve),越大意味着分类器效果越好。显然这个面积的数值不会大于1。又由于ROC曲线一般都处于y=x这条直线的上方,所以AUC的取值范围在0.5和1之间。使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,对应AUC更大的分类器效果更好。

            既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化

    1.4 对数损失

            对数损失(Log loss)亦被称为逻辑回归损失(Logistic regression loss)或交叉熵损失(Cross-entropy loss)。

            对于二分类问题, 设y∈{0,1},则对每个样本的对数损失为:

            

            可以很容易地将其扩展到多分类问题上。设Y为指示矩阵,即当样本i的分类为k时;设P为估计的概率矩阵,即,则对每个样本的对数损失为:

              

    1.5 铰链损失(Hinge loss)

            铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。

            铰链损失最开始出现在二分类问题中,假设正样本被标记为1,负样本被标记为-1,y是真实值,w是预测值,则铰链损失定义为:

             

            然后被扩展到多分类问题,假设是对真实分类的预测值,是对非真实分类预测中的最大值,则铰链损失定义为:

              

            注意,二分类情况下的定义并不是多分类情况下定义的特例。

    1.6 kappa系数

            kappa系数(Cohen's kappa用来衡量两种标注结果的吻合程度,标注指的是把N个样本标注为C个互斥类别。计算公式为

            

            其中是观察到的符合比例,是由于随机性产生的符合比例。当两种标注结果完全相符时,,越不相符其值越小,甚至是负的。

            现在举个栗子,对于50个测试样本的二分类问题,预测与真实分布情况如下表:

                

            预测与真实值相符共有20+15个,则观察到的符合比例为po=(20+15)/50=0.7。计算pe比较复杂,PREDICT预测为1的比例为0.5,GROUND中1的比例为0.6,从完全随机的角度来看,PREDICT与GROUND均为1的概率为0.5*0.6=0.3,PREDICT与GROUND均为0的概率为0.5*0.4=0.2,则PREDICT与GROUND由于随机性产生的符合比例为0.2+0.3=0.5,即pe=0.5,最后求得

    Kappa系数用于一致性检验,Kappa计算结果为[-1, 1],但通常kappa是落在0~1之间,可分为五组表示不同级别的一致性。

    大小一致性程度
    0.0 ~ 0.20极低的一致性
    0.21 ~ 0.40一般的一致性
    0.41 ~ 0.60中等的一致性
    0.61 ~ 0.80高度的一致性
    0.81 ~ 1几乎完全一致

    假设每一类的真实样本个数为:a_1, a_2, …, a_C;预测出来的每一类样本个数为:b_1, b_2, …, b_C;样本总个数为n 

    1.7 准确率

            准确率(Accuracy)衡量的是分类正确的比例。设是是第i个样本预测类别,是真是类别,在个测试样本上的准确率为

            

           其中1(x)是indicator function,当预测结果与真实情况完全相符时准确率为1,两者越不相符准确率越低。

           虽然准确率适用范围很广,可用于多分类以及多标签等问题上,但在多标签问题上很严格,在有些情况下区分度较差。

    1.8 海明距离

            海明距离(Hamming Distance)用于需要对样本多个标签进行分类的场景。对于给定的样本i是对第j个标签的预测结果,是第j个标签的真实结果,L是标签数量,则间的海明距离为

             

            其中1(x)是indicator function。当预测结果与实际情况完全相符时,距离为0;当预测结果与实际情况完全不符时,距离为1;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。

          我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量L为1时,它等于1-Accuracy,当标签数L>1时也有较好的区分度,不像准确率那么严格。

    1.9 杰卡德相似系数

            杰卡德相似系数( Jaccard similarity coefficients)也是用于需要对样本多个标签进行分类的场景。对于给定的样本i,是预测结果,是真实结果,L是标签数量,则第i个样本的杰卡德相似系数为

               

            它与海明距离的不同之处在于分母。当预测结果与实际情况完全相符时,系数为1;当预测结果与实际情况完全不符时,系数为0;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。

            我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量L为1时,它等于Accuracy

    1.10 多标签排序

            这节介绍一些更精细化的多标签分类效果衡量工具。设真实标签分类情况为,分类器预测情况为

    1.10.1 涵盖误差

            涵盖误差(Coverage error)计算的是预测结果中平均包含多少真实标签,适用于二分类问题。涵盖误差定义为:

             

           其中。可以看到它实际衡量的是真实标签中有多少排在预测结果的前面。

    1.10.2 标签排序平均精度

            标签排序平均精度(Label ranking average precision)简称LRAP,它比涵盖误差更精细:

            

            其中,

    1.10.3 排序误差

             排序误差(Ranking loss)进一步精细考虑排序情况:

               

           其中,

    2 拟合(回归)

            拟合问题比较简单,所用到的衡量指标也相对直观。假设是第i个样本的真实值,是对第i个样本的预测值。

    2.1 平均绝对误差

          平均绝对误差MAE(Mean Absolute Error)又被称为l1范数损失(l1-norm loss):

          

    2.2 平均平方误差

            平均平方误差MSE(Mean Squared Error)又被称为l2范数损失(l2-norm loss):

            

    2.3 解释变异

             解释变异( Explained variance)是根据误差的方差计算得到的:

             

    2.4 决定系数

           决定系数(Coefficient of determination)又被称为R2分数:

            

           其中,

    3 聚类

    3.1 兰德指数

             兰德指数(Rand index)需要给定实际类别信息C,假设K是聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数,则兰德指数为:

             

            其中数据集中可以组成的总元素对数,RI取值范围为[0,1],值越大意味着聚类结果与真实情况越吻合。

          对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:

              

              ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。

    3.2 互信息

            互信息(Mutual Information)也是用来衡量两个数据分布的吻合程度。假设U与V是对N个样本标签的分配情况,则两种分布的熵(熵表示的是不确定程度)分别为:

        

          其中

          U与V之间的互信息(MI)定义为:

         

         其中,

         标准化后的互信息(Normalized mutual information)为:

         

           与ARI类似,调整互信息(Adjusted mutual information)定义为:

           

            利用基于互信息的方法来衡量聚类效果需要实际类别信息,MI与NMI取值范围为[0,1],AMI取值范围为[−1,1],它们都是值越大意味着聚类结果与真实情况越吻合。

    3.3 轮廓系数

            轮廓系数(Silhouette coefficient)适用于实际类别信息未知的情况。对于单个样本,设a是与它同类别中其他样本的平均距离,b是与它距离最近不同类别中样本的平均距离,轮廓系数为:

              

             对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。

             轮廓系数取值范围是[−1,1],同类别样本越距离相近且不同类别样本距离越远,分数越高。

    4 信息检索

    信息检索评价是对信息检索系统性能(主要满足用户信息需求的能力)进行评估,与机器学习也有较大的相关性。

    参考:http://blog.sina.com.cn/s/blog_72995dcc01013oo9.html

     

     

    展开全文
  • 机器学习评价指标AUC计算公式

    千次阅读 2020-06-29 22:22:14
    AUC(are under curve)是一个模型的评价指标,用于分类任务。 那么这个指标代表什么呢?这个指标想表达的含义,简单来说其实就是随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本...

    1.什么是AUC?

    AUC(are under curve)是一个模型的评价指标,用于分类任务。
    那么这个指标代表什么呢?这个指标想表达的含义,简单来说其实就是随机抽出一对样本(一个正样本,一个负样本),然后用训练得到的分类器来对这两个样本进行预测,预测得到正样本的概率大于负样本概率的概率。
    在这里插入图片描述

    2.如何计算AUC?

    方法一

    在有M个正样本,N个负样本的数据集里。一共有MN对样本(一对样本即,一个正样本与一个负样本)。统计这MN对样本里,正样本的预测概率大于负样本的预测概率的个数。
    在这里插入图片描述
    在这里插入图片描述
    这里第一个条件应该为P(正样本)>P(负样本)。
    举例:
    在这里插入图片描述
    假设有4条样本。2个正样本,2个负样本,那么M*N=4。即总共有4个样本对。分别是:
    (D,B),(D,A),(C,B),(C,A)。
    在(D,B)样本对中,正样本D预测的概率大于负样本B预测的概率(也就是D的得分比B高),记为1
    同理,对于(C,B)。正样本C预测的概率小于负样本C预测的概率,记为0.
    最后可以算得,总共有3个符合正样本得分高于负样本得分,故最后的AUC为 1 + 1 + 1 + 0 4 = 0.75 \frac{1+1+1+0}{4}=0.75 41+1+1+0=0.75
    在这个案例里,没有出现得分一致的情况,假如出现得分一致的时候,例如:
    在这里插入图片描述
    同样本是4个样本对,对于样本对(C,B)其I值为0.5。最后的AUC为 1 + 1 + 1 + 0.5 4 = 0.875 \frac{1+1+1+0.5}{4}=0.875 41+1+1+0.5=0.875

    方法二

    在这里插入图片描述
    这个公式看起来有点吓人,其实就是先对预测概率进行排序,然后对正样本的序号相加,减去后面的常数项,最后除以M*N。
    r a n k i n s i rank_{ins_i} rankinsi:代表第i条样本的序号。(概率得分从小到大排,排在第rank个位置)。
    ∑ \sum 代表对属于正样本的序号加和。

    同样的,我们用上面的例子。
    在这里插入图片描述
    将这个例子排序。按概率排序后得到:
    在这里插入图片描述
    按照上面的公式,只把正样本的序号加起来也就是只把样本C,D的rank值加起来后减去一个常数项 M ( M + 1 ) 2 \frac{M(M+1)}{2} 2M(M+1),即 ( 4 + 2 ) − 2 ∗ ( 2 + 1 ) 2 2 ∗ 2 = 6 − 3 4 0.75 \frac{(4+2)-\frac{2*(2+1)}{2}}{2*2}=\frac{6-3}{4}0.75 22(4+2)22(2+1)=4630.75。这个答案和我们上面所计算的是一样的。

    这个时候,我们有个问题,假如出现得分一致的情况怎么办?下面举一个例子说明:
    在这里插入图片描述
    在这个例子中,我们有4个取值概率为0.5,而且既有正样本也有负样本的情况。计算的时候,其实原则就是相等得分的rank取平均值。具体来说如下:
    先排序:
    在这里插入图片描述
    这里需要注意的是:相等概率得分的样本,无论正负,谁在前,谁在后无所谓。
    由于只考虑正样本的rank值:
    对于正样本A,其rank值为7
    对于正样本B,其rank值为6
    对于正样本E,其rank值为(5+4+3+2)/4
    对于正样本F,其rank值为(5+4+3+2)/4
    最后我们得到:
    在这里插入图片描述

    展开全文
  • 机器学习评价指标大汇总

    千次阅读 2018-09-20 19:43:35
    在使用机器学习算法的过程中,针对不同场景需要不同的评价指标,在这里对常用的指标进行一个简单的汇总。 一、分类 1. 精确率与召回率 精确率与召回率多用于二分类问题。精确率(Precision)指的是模型判为正的...

    在使用机器学习算法的过程中,针对不同场景需要不同的评价指标,在这里对常用的指标进行一个简单的汇总。

    一、分类

    1. 精确率与召回率

    精确率与召回率多用于二分类问题。精确率(Precision)指的是模型判为正的所有样本中有多少是真正的正样本;召回率(Recall)指的是所有正样本有多少被模型判为正样本,即召回。设模型输出的正样本集合为AA,真正的正样本集合为BB,则有:

    Precision(A,B)=|A⋂B||A|,Recall(A,B)=|A⋂B||B|Precision(A,B)=|A⋂B||A|,Recall(A,B)=|A⋂B||B|。

    有时候我们需要在精确率与召回率间进行权衡,一种选择是画出精确率-召回率曲线(Precision-Recall Curve),曲线下的面积被称为AP分数(Average precision score);另外一种选择是计算FβFβ分数:

    Fβ=(1+β2)⋅precision⋅recallβ2⋅precision+recallFβ=(1+β2)⋅precision⋅recallβ2⋅precision+recall。

    当β=1β=1称为F1F1分数,是分类与信息检索中最常用的指标之一。

    2. ROC

    设模型输出的正样本集合为AA,真正的正样本集合为BB,所有样本集合为CC,我们称|A⋂B||B||A⋂B||B|为真正率(True-positive rate),|A−B||C−B||A−B||C−B|为假正率(False-positive rate)。

    ROC曲线适用于二分类问题,以假正率为横坐标,真正率为纵坐标的曲线图,如:

    ../_images/plot_roc_0011.png

    AUC分数是曲线下的面积(Area under curve),越大意味着分类器效果越好。

    3. 对数损失

    对数损失(Log loss)亦被称为逻辑回归损失(Logistic regression loss)或交叉熵损失(Cross-entropy loss)。

    对于二分类问题,设y∈{0,1}y∈{0,1}且p=Pr(y=1)p=Pr(y=1),则对每个样本的对数损失为:

    Llog(y,p)=−logPr(y|p)=−(ylog(p)+(1−y)log(1−p))Llog(y,p)=−log⁡Pr(y|p)=−(ylog⁡(p)+(1−y)log⁡(1−p))。

    可以很容易地将其扩展到多分类问题上。设YY为指示矩阵,即当样本ii的分类为kk时yi,k=1yi,k=1;设PP为估计的概率矩阵,即pi,k=Pr(ti,k=1)pi,k=Pr(ti,k=1),则对每个样本的对数损失为:

    Llog(Yi,Pi)=−logPr(Yi|Pi)=∑k=1Kyi,klogpi,kLlog(Yi,Pi)=−log⁡Pr(Yi|Pi)=∑k=1Kyi,klog⁡pi,k。

     4. 铰链损失

    铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。

    铰链损失最开始出现在二分类问题中,假设正样本被标记为1,负样本被标记为-1,yy是真实值,ww是预测值,则铰链损失定义为:

    LHinge(w,y)=max{1−wy,0}=|1−wy|+LHinge(w,y)=max{1−wy,0}=|1−wy|+。

    然后被扩展到多分类问题,假设ywyw是对真实分类的预测值,ytyt是对非真实分类预测中的最大值,则铰链损失定义为:

    LHinge(yw,yt)=max{1+yt−yw,0}LHinge(yw,yt)=max{1+yt−yw,0}。

    注意,二分类情况下的定义并不是多分类情况下定义的特例。

    5. 混淆矩阵

    混淆矩阵(Confusion Matrix)又被称为错误矩阵,通过它可以直观地观察到算法的效果。它的每一列是样本的预测分类,每一行是样本的真实分类(反过来也可以),顾名思义,它反映了分类结果的混淆程度。混淆矩阵ii行jj列的原始是原本是类别ii却被分为类别jj的样本个数,计算完之后还可以对之进行可视化:

    混淆矩阵可视化

    6. kappa系数

    kappa系数(Cohen's kappa)用来衡量两种标注结果的吻合程度,标注指的是把N个样本标注为C个互斥类别。计算公式为

    K=po−pe1−pe=1−1−po1−peK=po−pe1−pe=1−1−po1−pe。

    其中popo是观察到的符合比例,pepe是由于随机性产生的符合比例。当两种标注结果完全相符时,K=1K=1,越不相符其值越小,甚至是负的。

    是不是云里来雾里去的,现在举个栗子,对于50个测试样本的二分类问题,预测与真实分布情况如下表:

     GROUND
    10
    PREDICT1205
    01015

    预测与真实值相符共有20+15个,则观察到的符合比例为po=(20+15)/50=0.7po=(20+15)/50=0.7。计算pepe比较复杂,PREDICT预测为1的比例为0.5,GROUND中1的比例为0.6,从完全随机的角度来看,PREDICT与GROUND均为1的概率为0.5*0.6=0.3,PREDICT与GROUND均为0的概率为0.5*0.4=0.2,则PREDICT与GROUND由于随机性产生的符合比例为0.2+0.3=0.5,即pe=0.5pe=0.5,最后求得K=po−pe1−pe=0.7−0.51−0.5=0.4K=po−pe1−pe=0.7−0.51−0.5=0.4。

    7. 准确率

    准确率(Accuracy)衡量的是分类正确的比例。设y^iy^i是是第ii个样本预测类别,yiyi是真是类别,在nsamplensample个测试样本上的准确率为

    accuracy=1nsample∑i=1nsample1(y^i=yi)accuracy=1nsample∑i=1nsample1(y^i=yi)。

    其中1(x)1(x)是indicator function,当预测结果与真实情况完全相符时准确率为1,两者越不相符准确率越低。

    虽然准确率适用范围很广,可用于多分类以及多标签等问题上,但在多标签问题上很严格,在有些情况下区分度较差。

    8. 海明距离

    海明距离(Hamming Distance)用于需要对样本多个标签进行分类的场景。对于给定的样本ii,y^ijy^ij是对第jj个标签的预测结果,yijyij是第jj个标签的真实结果,LL是标签数量,则y^iy^i与yiyi间的海明距离为

    DHamming(y^i,yi)=1L∑j=1L1(y^ij≠yij)DHamming(y^i,yi)=1L∑j=1L1(y^ij≠yij)。

    其中1(x)1(x)是indicator function。当预测结果与实际情况完全相符时,距离为0;当预测结果与实际情况完全不符时,距离为1;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。

    我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量LL为1时,它等于1-Accuracy,当标签数L>1L>1时也有较好的区分度,不像准确率那么严格。

    9. 杰卡德相似系数

    杰卡德相似系数( Jaccard similarity coefficients)也是用于需要对样本多个标签进行分类的场景。对于给定的样本ii,y^iy^i是预测结果,yiyi是真实结果,LL是标签数量,则第ii个样本的杰卡德相似系数为

    J(y^i,yi)=|y^i⋂yi||yi^⋃yi|J(y^i,yi)=|y^i⋂yi||yi^⋃yi|。

    它与海明距离的不同之处在于分母。当预测结果与实际情况完全相符时,系数为1;当预测结果与实际情况完全不符时,系数为0;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。

    我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况,当标签数量LL为1时,它等于Accuracy。

    10. 多标签排序

    在这节我们介绍一些更精细化的多标签分类效果衡量工具。设真实标签分类情况为y∈{0,1}nsamples×nlabelsy∈{0,1}nsamples×nlabels,分类器预测情况为f^∈Rnsamples×nlabelsf^∈Rnsamples×nlabels。

    10.1 涵盖误差

    涵盖误差(Coverage error)计算的是预测结果中平均包含多少真实标签,适用于二分类问题。涵盖误差定义为:

    coverage(y,f^)=1nsamples∑i=1nsamplesmaxj:yij=1rankijcoverage(y,f^)=1nsamples∑i=1nsamplesmaxj:yij=1rankij,

    其中rankij=∣∣{k:f^ik≥f^ij}∣∣rankij=|{k:f^ik≥f^ij}|。可以看到它实际衡量的是真实标签中有多少排在预测结果的前面。

    10.2 标签排序平均精度

    标签排序平均精度(Label ranking average precision)简称LRAP,它比涵盖误差更精细:

    LRAP(y,f^)=1nsamples∑i=1nsamples1|yi|∑j:yij=1|Lij|rankijLRAP(y,f^)=1nsamples∑i=1nsamples1|yi|∑j:yij=1|Lij|rankij,

    其中Lij={k:yik=1,f^ik≥f^ij}Lij={k:yik=1,f^ik≥f^ij},rankij=∣∣{k:f^ik≥f^ij}∣∣rankij=|{k:f^ik≥f^ij}|。

    10.3 排序误差

    排序误差(Ranking loss)进一步精细考虑排序情况:

    ranking(y,f^)=1nsamples∑i=1nsamples1|yi|(nlabels−|yi|))|Lij|ranking(y,f^)=1nsamples∑i=1nsamples1|yi|(nlabels−|yi|))|Lij|,

    其中Lij={(k,l):f^ik<f^ij,yik=1,yil=0}Lij={(k,l):f^ik<f^ij,yik=1,yil=0}。

    二、拟合

    拟合问题比较简单,所用到的衡量指标也相对直观。假设yiyi是第ii个样本的真实值,y^iy^i是对第ii个样本的预测值。

    1. 平均绝对误差

    平均绝对误差MAE(Mean Absolute Error)又被称为l1l1范数损失(l1l1-norm loss):

    MAE(y,y^)=1nsamples∑i=1nsamples|yi−y^i|MAE(y,y^)=1nsamples∑i=1nsamples|yi−y^i|。

    2. 平均平方误差

    平均平方误差MSE(Mean Squared Error)又被称为l2l2范数损失(l2l2-norm loss):

    MSE(y,y^)=1nsamples∑i=1nsamples(yi−y^i)2MSE(y,y^)=1nsamples∑i=1nsamples(yi−y^i)2。

    3. 解释变异

    解释变异( Explained variance)是根据误差的方差计算得到的:

    explainedvariance(y,y^)=1−Var{y−y^}Varyexplainedvariance(y,y^)=1−Var{y−y^}Vary。

    4. 决定系数

    决定系数(Coefficient of determination)又被称为R2R2分数:

    R2(y,y^)=1−∑nsamplesi=1(yi−y^i)2∑nsamplesi=1(yi−y¯)2R2(y,y^)=1−∑i=1nsamples(yi−y^i)2∑i=1nsamples(yi−y¯)2,

    其中y¯=1nsamples∑nsamplesi=1yiy¯=1nsamples∑i=1nsamplesyi。

    三、聚类

    1 . 兰德指数

    兰德指数(Rand index)需要给定实际类别信息CC,假设KK是聚类结果,aa表示在CC与KK中都是同类别的元素对数,bb表示在CC与KK中都是不同类别的元素对数,则兰德指数为:

    RI=a+bCnsamples2RI=a+bC2nsamples,

    其中Cnsamples2C2nsamples数据集中可以组成的总元素对数,RI取值范围为[0,1][0,1],值越大意味着聚类结果与真实情况越吻合。

    对于随机结果,RI并不能保证分数接近零。为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:

    ARI=RI−E[RI]max(RI)−E[RI]ARI=RI−E[RI]max(RI)−E[RI],

    具体计算方式参见Adjusted Rand index

    ARI取值范围为[−1,1][−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。

    2. 互信息

    互信息(Mutual Information)也是用来衡量两个数据分布的吻合程度。假设UU与VV是对NN个样本标签的分配情况,则两种分布的熵(熵表示的是不确定程度)分别为:

    H(U)=∑i=1|U|P(i)log(P(i)),H(V)=∑j=1|V|P′(j)log(P′(j))H(U)=∑i=1|U|P(i)log⁡(P(i)),H(V)=∑j=1|V|P′(j)log⁡(P′(j)),

    其中P(i)=|Ui|/N,P′(j)=|Vj|/NP(i)=|Ui|/N,P′(j)=|Vj|/N。UU与VV之间的互信息(MI)定义为:

    MI(U,V)=∑i=1|U|∑j=1|V|P(i,j)log(P(i,j)P(i)P′(j))MI(U,V)=∑i=1|U|∑j=1|V|P(i,j)log⁡(P(i,j)P(i)P′(j)),

    其中P(i,j)=|Ui⋂Vj|/NP(i,j)=|Ui⋂Vj|/N。标准化后的互信息(Normalized mutual information)为:

    NMI(U,V)=MI(U,V)H(U)H(V)√NMI(U,V)=MI(U,V)H(U)H(V)。

    与ARI类似,调整互信息(Adjusted mutual information)定义为:

    AMI=MI−E[MI]max(H(U),H(V))−E[MI]AMI=MI−E[MI]max(H(U),H(V))−E[MI]。

    利用基于互信息的方法来衡量聚类效果需要实际类别信息,MI与NMI取值范围为[0,1][0,1],AMI取值范围为[−1,1][−1,1],它们都是值越大意味着聚类结果与真实情况越吻合。

    3. 轮廓系数

    轮廓系数(Silhouette coefficient)适用于实际类别信息未知的情况。对于单个样本,设aa是与它同类别中其他样本的平均距离,bb是与它距离最近不同类别中样本的平均距离,轮廓系数为:

    s=b−amax(a,b)s=b−amax(a,b)。

    对于一个样本集合,它的轮廓系数是所有样本轮廓系数的平均值。

    轮廓系数取值范围是[−1,1][−1,1],同类别样本越距离相近且不同类别样本距离越远,分数越高。

    四、信息检索

    信息检索评价是对信息检索系统性能(主要满足用户信息需求的能力)进行评估,与机器学习也有较大的相关性,感兴趣的可以参考这篇不错的博文。

    四、总结

    上面介绍了非常多的指标,实际应用中需要根据具体问题选择合适的衡量指标。那么具体工作中如何快速使用它们呢?优秀的Python机器学习开源项目Scikit-learn实现了上述绝指标的大多数,使用起来非常方便。

     

    出处:http://www.zhaokv.com/2016/03/ml-metric.html
    声明:版权所有,转载请联系作者并注明出处

    展开全文
  • 机器学习评价指标 ROC与AUC 的理解和python实现

    万次阅读 多人点赞 2018-08-15 23:04:44
    本文所讲内容的前提是一个二分类的任务,多分类任务可以经过简单扩展用转化成二分类。 评估一个二分类的分类器的性能指标有:准确率、查准率...更多机器学习评价指标的实现请前往 sklearn.metrics: Metrics

    本文所讲内容的前提是一个二分类的任务,多分类任务可以经过简单扩展用转化成二分类。

    评估一个二分类的分类器的性能指标有:准确率、查准率(precision)、查全率(recall)、F1值以及ROC和AUC等。前面几个比较直观,而ROC和AUC相对抽象一点,本文将重点放在后者。因为本人曾一度没搞清ROC,所以这次彻底搞明白。

    从混淆矩阵说起

    首先一个用分类器预测完后,我们会得到一个二分类的混淆矩阵:

    混淆矩阵

    多分类的混淆矩阵这里暂不考虑,但是分析是类似的。

    准确率

    所有预测正确的样本占所有样本的比例,但这个指标在类别比例不平衡时不太恰当。

    查准率(Precision)

    直观理解为: 在所有预测为正例中,真正正例的比例。(有点绕,多读几遍就好)

    P=TPTP+FP P = T P T P + F P

    查全率(Recall)

    直观理解为: 在所有真实的正例中,预测为正例的比例。

    R=TPTP+FN R = T P T P + F N

    F1-score

    由于Precision和Recall是一对不可调和的矛盾,很难同时提高二者,也很难综合评价。故提出F1来试图综合二者,F1是P和R的调和平均(harmonic mean):

    1F1=12(1P+1R)F1=2PRP+R 1 F 1 = 1 2 ( 1 P + 1 R ) → F 1 = 2 P R P + R

    什么是ROC曲线

    先有一个概念:很多学习器能输出一个实值或者概率预测,然后设定一个阈值,高于阈值为正类,反之负类。分类的过程就是设定阈值,并用阈值对预测值做截断的过程,当这个阈值发生变动时,预测结果和混淆矩阵就会发生变化,最终导致一些评价指标的值的变化。

    Wikipedia上对ROC曲线的定义:

    In signal detection theory, a receiver operating characteristic (ROC), or simply ROC curve, is a graphical plot which illustrates the performance of a binary classifier system as its discrimination threshold is varied.

    重点就在于这个“as its discrimination threashold is varied”。

    在进一步了解ROC之前,首先定义两个指标:

    • 真正例(True Positive Rate,TPR),表示所有正例中,预测为正例的比例:
      TPR=TPTP+FN T P R = T P T P + F N
    • 假正例(False Positive Rate,FPR),表示所有负例中,预测为正例的比例:
      FPR=FPTN+FP F P R = F P T N + F P

    FPR为横坐标,TPR为纵坐标,那么ROC曲线就是改变各种阈值后得到的所有坐标点 (FPR,TPR) 的连线,画出来如下。红线是随机乱猜情况下的ROC,曲线越靠左上角,分类器越佳。

    ROC曲线

    真实情况下,由于数据是一个一个的,阈值被离散化,呈现的曲线便是锯齿状的,当然数据越多,阈值分的越细,”曲线”越光滑。
    这里写图片描述


    AUC是什么

    AUC(Area Under Curve)就是ROC曲线下的面积。
    AUC的计算有两种方式,梯形法ROC AUCH法,都是以逼近法求近似值,具体见wikipedia。

    AUC的含义

    根据(Fawcett, 2006),AUC的值的含义是:

    The AUC value is equivalent to the probability that a randomly chosen positive example is ranked higher than a randomly chosen negative example.

    有点绕,解释一下:首先AUC值是一个概率值,当你随机挑选一个正样本以及一个负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率,就是AUC值。当然,AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

    用AUC判断分类器(预测模型)优劣的标准:

    • AUC = 1 是完美分类器,采用这个预测模型时,存在至少一个阈值能得出完美预测。绝大多数预测的场合,不存在完美分类器。
    • 0.5 < AUC < 1,优于随机猜测。这个分类器(模型)妥善设定阈值的话,能有预测价值。
    • AUC < 0.5,比随机猜测还差;但只要总是反预测而行,就优于随机猜测。

    AUC

    简单说:AUC值越大的分类器,正确率越高。


    为什么使用ROC曲线

    既然已经这么多评价标准,为什么还要使用ROC和AUC呢?因为ROC曲线有个很好的特性:当测试集中的正负样本的分布变化的时候,ROC曲线能够保持不变。
    在实际的数据集中经常会出现类不平衡(class imbalance)现象,即负样本比正样本多很多(或者相反),而且测试数据中的正负样本的分布也可能随着时间变化。下图是ROC曲线和Precision-Recall曲线的对比:

    ROC的优点

    在上图中,(a)和(c)为ROC曲线,(b)和(d)为Precision-Recall曲线。(a)和(b)展示的是分类其在原始测试集(正负样本分布平衡)的结果,(c)和(d)是将测试集中负样本的数量增加到原来的10倍后,分类器的结果。可以明显的看出,ROC曲线基本保持原貌,而Precision-Recall曲线则变化较大。


    用python的sklearn:绘制ROC曲线+求AUC

    1.分别求ROC和AUC

    求 ROC:sklearn.metrics.roc_curve()
    求 AUC:sklearn.metrics.auc()

    import numpy as np
    from sklearn.metrics import roc_curve, auc
    
    y = np.array([1, 1, 1, 1, 1,
                  2, 2, 2, 2, 2])
    y_proba = np.array([0.1, 0.4, 0.4, 0.3, 0.5,
                        0.4, 0.6, 0.7, 0.8, 0.5])   # probability of prediction as positive
    
    fpr, tpr, thresholds = roc_curve(y, y_proba, pos_label=2)
    auc = auc(fpr, tpr)
    >>> fpr
    array([0. , 0. , 0.2, 0.6, 1. ])
    >>> tpr
    array([0.2, 0.6, 0.8, 1. , 1. ])
    >>> thresholds
    array([0.8, 0.6, 0.5, 0.4, 0.1])
    >>> auc
    >>> 0.9

    fprtpr 的值用matplotlib绘制即得ROC曲线。如下图:

    ROC曲线

    2. 直接求AUC

    也可以用 sklearn.metrics.roc_auc_score() 直接求得AUC

    >>> 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

    References:

    ROC和AUC介绍以及如何计算AUC
    Let’s learn about AUC ROC Curve!
    The Probabilistic Interpretation of AUC
    Probabilistic interpretation of AUC
    机器学习之分类性能度量指标 : ROC曲线、AUC值、正确率、召回率
    模型评估与选择概述
    ROC曲线和AUC值的计算

    代码部分:
    sklearn - roc_curve()
    sklearn - auc()
    sklearn - roc_auc_score()
    sklearn - ROC Demo

    更多机器学习评价指标的实现请前往 sklearn.metrics: Metrics

    展开全文
  • 机器学习评价方法之NRIG

    千次阅读 2015-11-17 15:53:06
    在工业界,逻辑回归是很常用的模型,一般大家在用逻辑回归做机器学习排序或者广告预估时常用AUC来判断排序的效果,逻辑回归是概率模型,除了排序的指标之外,有时会出现AUC比较好,但是概率拟合较差(很有可能是收敛...
  • recall与precision区别: (1)recall,召回率又名查全率,与漏报率有关,(漏报率,FN,即错误的预测为负样本,换句话说,将实际为正的样本预测为负),详情参照混淆矩阵,如下。     预测为正样本...
  • 机器学习评价指标(ACC,P,R,F1,AUC等)

    万次阅读 多人点赞 2018-12-15 22:24:01
    分类 TP:正例预测正确的个数 ...在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点...
  • 准确率(ACC) 指在分类中,使用测试集对模型进行...AUC(Area Under Curve)[3]被定义为ROC曲线下的面积,使用AUC值作为评价标准是因为很多时候ROC曲线并不能清晰的说明哪个分类器的效果更好,而作为一个数值,...
  • 1, 2, 2]) scores = np.array([0.1, 0.4, 0.35, 0.8]) # 机器学习中y为y_test的label值, socres为预测概率,即clf.predict_proba(x_test)[:, 1] fpr, tpr, thresholds = metrics.roc_curve(y, scores, pos_label=2...
  • 我们训练模型时需要用到各种评价指标,网上很多人的总结要么太凌乱,甚至还有错误,总结一下各种常用的评价指标,以备使用时查阅,如有错误欢迎指出。 1.分类准确率 分类正确的样本占总样本个数的比例。 2.TP/...
  • 理想状态:标准或者阈值在分界点 实际状况:漏诊和误诊二者择一 若选用绿线作为判断标准,则没有误判一个正常人,但是漏掉了部分患者; 若选择红线作为判断标准,则没有一个病人被漏诊,但部分正常人得到了错误的...
  • 机器学习模型的评价指标和方法

    万次阅读 多人点赞 2016-09-18 15:04:55
    ... 对于二类分类器/分类算法,评价指标主要有accuracy, [precision,recall,F-score,pr曲线],ROC-AUC曲线,gini系数。 对于多类分类器/分类算法,评价指标主要有accuracy, [宏平均和微...
  • 基于机器学习的无参考图像质量评价
  • 机器学习&图像分割——模型评价总结(含完整代码)

    万次阅读 多人点赞 2018-05-22 17:21:49
    机器学习&图像分割——模型评价总结(含完整代码) 模型评价的方法指标有很多,如:PR-curve,MAE,ROC,Precision,Recall,AUC,AP,mAP,DSI,VOE,RVD等等; 本文旨在介绍机器学习&图像...
  • 机器学习读书笔记: 模型性能评价

    万次阅读 2020-08-10 18:29:44
    ​ 在周志华老师的《机器学习》一书中提到,模型的训练就是利用训练数据在数据属性构成的“假设空间”中进行搜索,在搜索过程中会删除假设空间的某些假设,最终留下一些假设形成“版本空间”,最终再通过这个模型...
  • 机器学习评价指标总结

    千次阅读 2016-07-20 17:14:28
    前言评价一个机器学习任务好坏有很多指标,最常见的是准确率(acc),但准确率在某些场合下并不是一个好的评价指标,如在类别不平衡中。其他一些常见的评价指标如下:混淆矩阵,灵敏度,特异性,精确度,召回率,F1...
  • 基于机器学习理论的海洋水质评价模型
  • BAT机器学习面试1000题系列

    万次阅读 多人点赞 2017-12-14 15:19:15
    1、本文的内容全部来源于七月在线发布的BAT机器学习面试1000题系列; 2、文章中带斜体的文字代表是本人自己增加的内容,如有错误还请批评指正; 3、原文中有部分链接已经失效,故而本人重新加上了新的链接,如有...
  • 无论利用机器学习算法进行回归、分类或者时聚类,评价指标,即检验机器学习模型效果的定量指标,都是一个不可避免且十分重要的问题,因此,结合scikit-learn主页上的介绍,对常用的评价指标及其实现、应用进行简单...
  • 机器学习模型的评价

    千次阅读 2016-03-14 11:46:39
    机器学习是一门跨学科领域,涉及到统计学、计算机科学、最优化理论、信息理论、神经科学、理论物理以及其他...  本文将从以下部分对机器学习模型的评价进行介绍:  * 介绍模型离线与在线评价体系与知识;  * 介绍
  • 在完成了机器学习中的分类算法以后,其中一个很重要的问题就是如何去评价这些算法的性能。 一般来说,有如下几种方法。我们分别对这些方法进行介绍。 1. 准确率 这种方法顾名思义就是计算,在机器学习中正确分类...
  • 机器学习分类器模型评价指标分类器评价指标主要有:1,Accuracy2,Precision 3,Recall 4,F1 score 5,ROC 曲线6,AUC7,PR 曲线混淆矩阵混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的...
  • 一个模仿windows扫雷游戏的exe程序,有实时的情况记录、时间记录等功能,可供机器学习用户使用,希望对大家有用处
  • 为了提高文学英译作品自动评价的水平, 引入基于机器学习的智能算法模型成为当前最有效的方法. 首先研究文学作品的翻译规则和特殊性, 建立基于变量特征的翻译评价指标体系; 然后利用Python语言平台, 英译文本经...
  • 机器学习 - 精度评价

    千次阅读 2018-01-16 15:21:29
    机器学习 - 精度评价Python sklearn.metrics 提供了很多任务的评价指标,如分类任务的混淆矩阵、平均分类精度、每类分类精度、总体分类精度、F1-score 等;以及回归任务、聚类任务等多种内置函数. 分类 - 混淆矩阵 ...
  • 机器学习

    千次阅读 多人点赞 2018-04-18 21:01:12
    机器学习基本理论 基本术语与方法特征选择概述多目标优化问题 分类算法、经典算法 分类算法NSGA2算法粒子群优化算法(PSO)聚类算法蚁群算法(ACO)其它算法 前沿算法 NSGA2算法前沿PSO算法差分分组算法...
  • 机器学习算法模型评价指标ROC AUC

    千次阅读 2018-03-04 21:12:52
    【导读】在机器学习研究或项目中使用分类精度、均方误差这些方法衡量模型的性能。当然,在进行实验的时候,一种或两种衡量指标并不能说明一个模型的好坏,因此我们需要了解常用的几种机器学习算法衡量指标。 本文...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 80,490
精华内容 32,196
关键字:

机器学习评价