评价-分类算法的评价指标
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了评价-分类算法的评价指标相关的知识,希望对你有一定的参考价值。
参考技术A 对于二元分类,通常可以输出混淆矩阵,看预测的情况,并从中总结出一些指标,给予评价。
混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。在图像精度评价中,主要用于比较分类结果和实际测得值,可以把分类结果的精度显示在一个混淆矩阵里面。混淆矩阵是通过将每个实测像元的位置和分类与分类图像中的相应位置和分类相比较计算的。
以二元分类举例,混淆矩阵为:
每个样本会对应一个预测值和一个实际标签值,从上图可以知道,实际为1分类,预测结果也是1分类的有100个,而实际是0,预测是1的有3个,以此类推。
为了方便记忆,混淆矩阵的各个单元格有一个统一的称呼:
True很好理解,就是预测对了的,Positive代表的意思是实际分类为1的值,Negative代表的是实际分类为0的值。括号里面的就是简称了,这在后面会有用处。
假定1为正样本,0为负样本,则混淆矩阵的各个单元格表述如下:
真正率(true prositive rate, TPR) 或灵敏度(sensitivity)定义为被模型正确预测的正样本比例,为:
同理可得其他:
从直观印象上来说,判断一个分类模型是不是准确,肯定是直接判断分类模型的正确率,这样就可以对模型有一个大概的评价,但是在某些时候,这么做并不靠谱:
假如我有一组产品,其中正品率可能是99.5%,次品率是0.5%,我的预测模型得到的结果是正品99%,次品1%,如果用正确率来算,是相当可观的,但是实际上次品的预测差距是整整1倍,很难说这是一个好的模型。
这种不同类的样本数量完全不成比例的情况,叫做不平衡类(倾斜类)。
对于这种分类,可以根据混淆矩阵来设计一些指标,从而评估模型,精准率就是其中之一:
精准率从公式上看,表达的意思就是预测为正样本的样本中,有多少是真正为正的,代表了预测的精确程度 。以下面的混淆矩阵为例:
所以精准率就是0.9804。
同上,召回率也是从混淆矩阵中总结出来的指标:
表达的意思则是,实际为正样本的个数中,有多少被成功的预测了 (有点类似于我现在从事行业的回收率,姑且这么理解吧)
还是上面的矩阵,那么召回率就是
事实上一个模型大部分时候是很难做到精确率和召回率两全的,有可能追求完美的精确率但是召回率很低,反之也一样,为了同时最大化精确率和召回率,可以用F1值对分类模型进行评价:
这个值肯定是在小于1的范围以内,原则上越大越好了。
ROC曲线是显示分类算法真正率和假正率之间折中的一种可视化方法,把真正率(TPR)作为y轴,假正率(FPR)作为x轴。
设定一个阈值,阈值之上的样本为正样本,之下为负样本,阈值降低,则真正率越高,假正率也会越高(因为判断正样本的条件宽松了),所以ROC曲线应该是x轴和y轴同时增长的,如图:
如果是一个随机分类,则ROC曲线应该是沿着对角线的,如果是分类算法,那么图像越靠近左上角,模型效果越好(假正率很低的时候真正率高)。
AUC是ROC曲线下方的面积,很显然,面积越大越好,如果模型是完美的,那么面积等于1,如果是随即分类,那么就是0.5。
以上这几种常用方法都是二元分类的方法,其中有一些也可以扩展到多分类,另外还有多分类专用的评价方法。
转自 https://www.zhihu.com/question/56403549/answer/151310817
应用多分类问题,把每个类别单独视为”正“,所有其它类型视为”负“,考虑如下的混淆矩阵:
Kappa统计是比较两个或多个观测者对同一事物,或观测者对同一事物的两次或多次观测结果是否一致,这个系数的取值范围是[-1,1],实际应用中,一般是[0,1],这个系数的值越高,则代表模型实现的分类准确度越高。
Kappa统计数字的意义如下:
其中,p0表示为总的分类准确度;
pe表示为
其中, 代表第i类真实样本个数, 代表第i类预测出来的样本个数。
对于该表中的数据,则有:
海明距离也适用于多分类的问题,简单来说就是衡量预测标签与真实标签之间的距离,取值在0~1之间。距离为0说明预测结果与真实结果完全相同,距离为1就说明模型与我们想要的结果完全就是背道而驰。
它与海明距离的不同之处在于分母。当预测结果与实际情况完全相符时,系数为1;当预测结果与实际情况完全不符时,系数为0;当预测结果是实际情况的真子集或真超集时,距离介于0到1之间。
我们可以通过对所有样本的预测情况求平均得到算法在测试集上的总体表现情况。
铰链损失(Hinge loss)一般用来使“边缘最大化”(maximal margin)。损失取值在0~1之间,当取值为0,表示多分类模型分类完全准确,取值为1表明完全不起作用。
参考: https://www.jianshu.com/p/573ba75aec94
模型评价指标总结
参考技术A 1、分类准确度定义:分类准确度(accuracy),指在分类模型中,模型的输出分类结果与真实结果一致的样本占总分类样本的比例。
优缺点:其容易理解,但致命缺点是对于极度偏斜的数据,使用分类准确度是不科学不全面的。如癌症产生的概率时0.1%,那如果不用任何机器学习的算法,只要系统将所有人都预测为健康,那么即可达到99.9%的准确率。这显然是不科学的。
2、精准率和召回率
精准率和召回率又可分别称为查准率和查全率,即平常所说的precision和recall。想要弄清楚这两个指标的计算方法,首先需要对混淆矩阵有个清晰的认识。
(1)混淆矩阵
混淆矩阵是一个2*2的矩阵形式的表格,其行为真实标签分布,列为预测标签分布。如下:
其中,第一行为真实值为P,第二行为真实值为N。第一列为预测值为P,第二列为预测值为N。设矩阵为M,则M11为真实值为p且预测值为P,M12为真实值为p但预测值为N,M21为真实是为N但预测值为P,M22为真实值为N且预测值为N。
(2)精准率(precision)
precision=TP/(TP+FP)。含义为所有预测为positive的样本中真正为positive的样本数所占比例。即预测为P,且预测对了的比例。通常含义上,精准率为我们关注的事件预测得有多准。
(3)召回率(recall)
recall=TP/(TP+FN)。含义为所有实际为positive的样本中预测对了的样本数所占比例。即真实值为P,且预测对了的比例。通常含以上,召回率为我们关注的事件真正预测成功的比例为多少。
3、综合评价指标
精准率和召回率是两个矛盾的指标,一个高时,另一个就偏低。因此,需要一个综合性的指标来对模型性能进行评估。
(1)F值
F值precision和recall的调和平均数,使用调和平均数时,假设两者一样重要,称为F1-score。
F1-score=(2recall*precision)/(recall+precision)
(2)P-R曲线(Precision-Recall Curve)
以precision为纵轴,以recall为横轴,取不同的分类阈值,在此基础上画出来的一条曲线就叫做PR曲线。PR曲线越接近右上角(precision=1,recall=1),代表模型越好。一般而言,比较P-R曲线下面积的大小,可在一定程度上表征模型在查准率和查全率上取得相对“双高”的比例,但该值不太容易计算。因此,其他相对容易计算的性能度量被提出。
(2)ROC曲线(Receiver Operating Characteristic Curve)
ROC曲线,全称“受试者工作特征”曲线,以“真正率”为y轴,以“假正率”为x轴,取不同的分类阈值,在此基础上画出来的一条曲线就叫做ROC曲线。ROC曲线越接近左上角(true positive rate=1,false positive rate=0),代表模型性能越好。同P-R曲线一样,一般通过ROC曲线下的面积(auc)来判断模型的好坏。AUC越大,代表模型性能越好,若AUC=0.5,即ROC曲线与45度角线重合,表示模型的区分能力与随机猜测没有差别。
4、回归模型的评价指标
1、均方误差MSE
2、均方根误差RMSE
3、平均绝对误差MAE
4、R Square
均方根误差和平均绝对误差依据数据本身的量纲,不同的模型不具有可比性,没有分类准确率这样统一在0-1之间取值的性质。因此,出现了R square统计量。
R square优点:
(1)对于分子来说,预测值和真实值之差的平方和,即使用我们的模型预测产生的错误。
(2)对于分母来说,是均值和真实值之差的平方和,即认为“预测值=样本均值”这个模型(Baseline Model)所产生的错误。
(3)我们使用Baseline模型产生的错误较多,我们使用自己的模型错误较少。因此用1减去较少的错误除以较多的错误,实际上是衡量了我们的模型拟合住数据的地方,即没有产生错误的相应指标。
R square结论:
(1)R square<=1
(2)R square越大越好,越大说明减少的分子小,错误率低。其最大值为1。
(3)当我们的模型等于基准模型时,R square = 0
(4)如果R square<0,说明我们学习到的模型还不如基准模型。此时,很可能我们的数据不存在任何线性关系。
以上是关于评价-分类算法的评价指标的主要内容,如果未能解决你的问题,请参考以下文章