版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、模型评价指标-分类和回归任务根据模型处理的任务不同,评价标准也不同,分类任务和回归任务的评价指标如下:分类:accuracy、误分类率、precision、recall、F1score、ROC曲线、AUC、PR曲线、AP、mAP等;回归:RMSE、MSE、MAE、MAPE、SMAPE;1.混淆矩阵(ConfusionMatrix)混淆矩阵是能够比较全面的反映模型的性能,从混淆矩阵能够衍生出很多的指标来。真实情况预测结果正例反例正例TP(真正例)FN(假反例)反例FP(假正例)TN(真反例)其中:TP:真正例,实际为正预测为正;FP:假正例,实际为负但预测为正;FN:假反例,实际为正但预测为负;
2、TN:真反例,实际为负预测为负sklearn.metrics.confusion_matrix(y_true,y_pred,labels=None,sample_weight=None)fromsklearn.metricsimportconfusion_matrixy_true=2,0,2,2,0,1y_pred=0,0,2,2,0,2confusion_matrix(y_true,y_pred)array(2,0,0,0,0,1,1,0,2)y_true=cat,ant,cat,cat,ant,birdy_pred=ant,ant,cat,cat,ant,catconfusion_matr
3、ix(y_true,y_pred,labels=ant,bird,cat)array(2,0,0,0,0,1,1,0,2)2.准确率(正确率)(Accuracy)准确率是分类正确的样本占总样本个数的比例,即为总样本个数。为被正确分类的样本个数,其中,根据ConfusionMatrix,公式还可以这样写:准确率是分类问题中最简单直观的评价指标,但存在明显的缺陷。比如如果样本中有99%的样本为正样本,那么分类器只需要一直预测为正,就可以得到99%的准确率,但其实际性能是非常低下的。也就是说,当不同类别样本的比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素。sklearn.metrics
4、.accuracy_score(y_true,y_pred,normalize=True,sample_weight=None)fromsklearn.metricsimportaccuracy_scorey_pred=0,2,1,3y_true=0,1,2,3accuracy_score(y_true,y_pred)0.5accuracy_score(y_true,y_pred,normalize=False)2#在具有二元标签指示符的多标签分类案例中importnumpyasnpaccuracy_score(np.array(0,1,1,1),np.ones(2,2)0.5因为准确率的缺陷
5、比较明显,所以在多分类问题中一般不直接使用整体的分类准确率,而是使用每个类别下的样本准确率的算术平均作为模型的评估指标。精确率、查准率(精准率)精确率指模型预测为正的样本中实际也为正的样本占被预测为正的样本的比例。公式为:sklearn.metrics.precision_score(y_true,y_pred,labels=None,pos_label=1,average=binary,sample_weight=None)重要参数y_true:维数组,或标签指示符/稀疏矩阵,实际(正确的)标签.y_pred:维数组,或标签指示符/稀疏矩阵,分类器返回的预测标签.average:字符串,可选
6、值为None,binary,micro,macro,samples,weighted.多类或者多标签目标需要这个参数.如果为None,每个类别的分数将会返回否则,它决定了数据的平均值类型.binary:仅报告由pos_label指定的类的结果这仅适用于目示是二进制的情况.micro:通过计算总的真正性、假负性和假正性来全局计算指标.macro:为每个标签计算指标,找到它们未加权的均值.它不考虑标签数量不平衡的情况.weighted:为每个标签计算指标,并通过各类占比找到它们的加权均值(每个标签的正例数)它解决了macro的标签不平衡问题;它可以产生不在精确率和召回率之间的F-score.sam
7、ples:为每个实例计算指标,找到它们的均值(只在多标签分类的时候有意义,并且和函数accuracy_score不同).sample_weight:形状为样本数量的数组,可选参数样本权重.fromsklearn.metricsimportprecision_scorey_true=0,1,2,0,1,2y_pred=0,2,1,0,0,1precision_score(y_true,y_pred,average=macro)0.22.precision_score(y_true,y_pred,average=micro)0.33.precision_score(y_true,y_pred,av
8、erage=weighted)0.22.precision_score(y_true,y_pred,average=None)array(0.66,0.,0.)遴W:題邈MacroAverage宏平均是指在计算均值时使每个类别具有相同的权重,最后结果是每个类别的指标的算术平均值。MicroAverage微平均是指计算多分类指标时赋予所有类别的每个样本相同的权重,将所有样本合在一起计算各个指标。根据precision_score接口的解释,我们可以知道,当average参数为None时,得到的结果是每个类别的precision。上面的y_true有3个类别,分别为类0、类1、类2。我们将每个类别
9、的TP、FP、FN列在下表中。类别TPFPFN类1210类2022类3011那么每个类别的precision也就得到了,如下所示:从而MacroPrecision也就知道了,就是(P0+P1+P2)/3=2/90.222MicroPrecision的计算要从每个样本考虑,所有样本中预测正确的有两个,那么TP就是2,剩下的4个预测结果都可以看做FP,那么MicroPrecision就是2/(2+4)=1/30.333最后还有一个average-weighted的情况,因为这里每个类别的数量都恰好占比1/3,所以结果是虽然,我们是主要讲精确率的,但是宏平均和微平均的概念也很重要,这里顺便对比一下。
10、如果每个类别的样本数量差不多,那么宏平均和微平均没有太大差异如果每个类别的样本数量差异很大,那么注重样本量多的类时使用微平均,注重样本量少的类时使用宏平均如果微平均大大低于宏平均,那么检查样本量多的类来确定指标表现差的原因如果宏平均大大低于微平均,那么检查样本量少的类来确定指标表现差的原因查全率(召回率)召回率指实际为正的样本中被预测为正的样本所占实际为正的样本的比例。sklearn中recall_score方法和precision_score方法的参数说明都是一样的,所以这里不再重复sklearn.metrics.recall_score(y_true,y_pred,labels=None,
11、pos_label=1,average=binary;sample_weight=None)fromsklearn.metricsimportrecall_scorey_true=0,1,2,0,1,2y_pred=0,2,1,0,0,1recall_score(y_true,y_pred,average=macro)0.33.recall_score(y_true,y_pred,average=micro)0.33.recall_score(y_true,y_pred,average=weighted)0.33.recall_score(y_true,y_pred,average=None)
12、array(1.,0.,0.)Recall和Precision只有计算公式不同,它们average参数为macro,micro,weighted和None时的计算方式都是相同的,具体计算可以使用上节列出来的TP、FP、FN表,这里不再赘述。查准率和查全率是一对矛盾的度量。一般来说,查准率高时,查全率往往偏低;而查全率高时,查准率往往偏低。通常只有在一些简单任务中,才可能使二者都很高。F1scoreF1score是精确率和召回率的调和平均值,计算公式为:Precision体现了模型对负样本的区分能力,Precision越高,模型对负样本的区分能力越强;Recall体现了模型对正样本的识别能力,R
13、ecall越高,模型对正样本的识别能力越强。F1score是两者的综合,F1score越高,说明模型越稳健。sklearn中fl_score方法和precision_score方法、recall_score方法的参数说明都是一样sklearn.metrics.f1_score(y_true,y_pred,labels=None,pos_label=1,average=binary,sample_weight=None)fromsklearn.metricsimportf1_scorey_true=0,1,2,0,1,2y_pred=0,2,1,0,0,1f1_score(y_true,y_pr
14、ed,average=macro)0.26f1_score(y_true,y_pred,average=micro)0.33f1_score(y_true,y_pred,average=weighted)0.26f1_score(y_true,y_pred,average=None)array(0.8,0.,0.)P-R曲线P-R曲线的P就是查准率(Precision),R就是查全率(Recall)。以P作为横坐标,R作为纵坐标,就可以画出P-R曲线。对于同一个模型,通过调整分类阈值,可以得到不同的P-R值,从而可以得到一条曲线(纵坐标为P,横坐标为R)。通常随着分类阈值从大到小变化(大于阈值
15、认为P),Precision减小Recall增加。比较两个分类器好坏时,显然是查得又准又全的比较好,也就是的PR曲线越往坐标(1,1)的位置靠近越好。若一个学习器的P-R曲线被另一个学习器完全”包住”,则后者的性能优于前者。当存在交叉时,可以计算曲线围住面积,不太容易判断,但是可以通过平衡点(查准率=查全率,Break-EvenPoint,BEP)来判断。下图中,基于BEP的比较,可以认为模型A优于模型B。IH#ROC曲线和AUCAUC(AreaUndertheROCCurve)指标是在二分类问题中,模型评估阶段常被用作最重要的评估指标来衡量模型的稳定性。根据混淆矩阵,我们可以得到另外两个指标
16、:真正例率,TruePositiveRate:tpr=TP/(TP+FN)假正例率,FalsePostiveRate:FPR=FP/(TN+FP)另外,真正率是正确预测到的正例数与实际正例数的比值,所以又称为灵敏度(敏感性sensitive);对应于灵敏度有一个特异度(特效性specificity)是正确预测到的负例数与实际负例数的比值(NPV=TN/(TN+FN)。我们以真正例率(TPR)作为纵轴,以假正例率(FPR)作为横轴作图,便得到了ROC曲线,而AUC则是ROC曲线下的面积AUC的取值为0.5-1,0.5对应于对角线的“随机猜测模型”。10080.60.40.2“仍010.0.A1.
17、0AUC值是一个概率值,当你随机挑选一个正样本以及负样本,当前的分类算法根据计算得到的Score值将这个正样本排在负样本前面的概率就是AUC值,AUC值越大,当前分类算法越有可能将正样本排在负样本前面,从而能够更好地分类。例如一个模型的AUC是0.7,其含义可以理解为:给定一个正样本和一个负样本,在70%的情况下,模型对正样本的打分(概率)高于对负样本的打分。那么为什么要用AUC作为二分类模型的评价指标呢?为什么不直接通过计算准确率来对模型进行评价呢?因为机器学习中的很多模型对于分类问题的预测结果大多是概率,即属于某个类别的概率,如果计算准确率的话,就要把概率转化为类别,这就需要设定一个阈值,
18、概率大于某个阈值的属于一类,概率小于某个阈值的属于另一类,而阈值的设定直接影响了准确率的计算。也就是说AUC越高说明阈值分割所能达到的准确率越高。PR曲线与ROC曲线对比与PR曲线相比,相对来讲ROC曲线会更稳定,在正负样本量都足够的情况下,ROC曲线足够反映模型的判断能力。而在正负样本分布得极不均匀(highlyskeweddatasets)的情况下(正样本极少),PRC比ROC能更有效地反映分类器对于整体分类情况的好坏。总之,只画一个曲线时,如果没有dataimbalance,倾向于用ROC(更简洁,更好理解)。如果数据样本不均衡,分两种情况:情况1:如正样本远小于负样本,PRC更敏感,因
19、为用到了precision=(TP/(TP+FP)。情况2:正样本远大于负样本,PRC和ROC差别不大,都不敏感。对于同一模型,PRC和ROC曲线都可以说明一定的问题,而且二者有一定的相关性,如果想评测模型效果,也可以把两条曲线都画出来综合评价。均方误差MSE(MeanSquareError)假设:预测值:真实值:均方误差(MeanSquareError)范围0,+8),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。10.均方根误差RMSE(RootMeanSquareError)均方根误差(RootMeanSquareError),其实就是MSE加了个根号,这样数量级上比
20、较直观,比如RMSE=10,可以认为值平均相差10。范围0,+8),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。11.平均绝对误差MAE(MeaiAbsoluteError)范围0,+8),当预测值与真实值完全吻合时等于0,即完美模型;误差越大,该值越大。12.平均绝对百分比误差MAPE(MeanAbsolutePercentageError)范围0,+8),MAPE为0%表示完美模型,MAPE大于100%则表示劣质模型。可以看到,MAPE跟MAE很像,就是多了个分母。注意点:当真实值有数据等于0时,存在分母0除问题,该公式不可用!13.对称平均绝对百分比误差SMAPE(SymmetricMeanAbsolutePercentageError)注意点:当真实值有数据等于0,而预测值也
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026南昌高速公路有限公司收费员招聘6人农业笔试参考题库及答案解析
- 2026河北保定容西管理委员会招聘辅助性岗位人员12人农业考试备考试题及答案解析
- 2025至2030中国虚拟桌面基础设施(VDI)软件行业项目调研及市场前景预测评估报告
- 2025至2030中国胭脂红酸行业项目调研及市场前景预测评估报告
- 2025至2030中国系泊沉桩行业项目调研及市场前景预测评估报告
- 2026河南省农业科学院招聘高层次人才91人农业考试备考题库及答案解析
- 2026年武汉市江夏区区属国有企业专业人才招聘28人农业笔试模拟试题及答案解析
- 2025至2030中国前列腺支架行业项目调研及市场前景预测评估报告
- 2025至2030中国4K投影仪行业项目调研及市场前景预测评估报告
- 2025-2030高附加值农产品品牌化体系建设研究行业代表企业成功特征分析报告
- 光明电力公司招聘笔试题目
- 海康威视智慧园区综合安防集成系统解决方案
- 面密度仪设备原理培训课件
- 工程造价预算编制服务方案
- 北京建筑施工特种作业人员体检表
- OPC通讯DCOM配置手册
- 风电场项目升压站施工测量施工方案与技术措施
- 北师大新版八年级下册数学前三章复习培优题
- 井筒举升设计及实例分析讲课材料详解
- 临床输血学检验(技术):11输血不良反应与输血传播疾病
- GB/T 18830-2009纺织品防紫外线性能的评定
评论
0/150
提交评论