1.机器学习之模型评估详解大道至简

模型评价是指对于已经建立的一个或多个模型,根据其模型的类别,使用不同的指标评价其性能优劣的过程。常用的聚类模型评价指标有ARI评价法(兰德系数)、AMI评价法(互信息)、V-measure评分、FMI评价法和轮廓系数等。常用的分类模型评价指标有准确率(Accuracy)、精确率(Precision)、召回率(Recall)、F1值(F1Value)、ROC和AUC等。常用的回归模型评价指标有平均绝对误差、均方根误差、中值绝对误差和可解释方差值等。

线性回归解决的是连续型数值的预测问题,例如预测房价,产品销量等。逻辑回归解决的是分类问题,从分类数量上看,有二项分类和多项分类。

sklearn库的metrics模块提供各种评估方法,包括分类评估、回归评估、聚类评估和交叉验证等,评估分类是判断预测值时否很好的与实际标记值相匹配。正确的鉴别出正样本(TruePositives)或者负样本(TrueNegatives)都是True。同理,错误的判断正样本(FalsePositive,即一类错误)或者负样本(FalseNegative,即二类错误)。注意:True和False是对于评价预测结果而言,也就是评价预测结果是正确的(True)还是错误的(False)。而Positive和Negative则是样本分类的标记。

metrics模块分类度量有6种方法,如下表所示:

指标

描述

metrics方法

Accuracy

准确度

fromsklearn.metricsimportaccuracy_score

Precision

查准率

fromsklearn.metricsimportprecision_score

Recall

查全率

fromsklearn.metricsimportrecall_score

F1

F1值

fromsklearn.metricsimportf1_score

ClassificationReport

分类报告

fromsklearn.metricsimportclassification_report

ConfusionMatrix

混淆矩阵

fromsklearn.metricsimportconfusion_matrix

ROC

ROC曲线

fromsklearn.metricsimportroc_curve

AUC

ROC曲线下的面积

fromsklearn.metricsimportauc

1'''2fromsklearn.metricsimportaccuracy_score,precision_score,3recall_score,f1_score,classification_report,confusion_matrix4accuracy_score(y_test,y_pred)5precision_score(y_test,y_pred)6recall_score(y_test,y_pred)7f1_score(y_test,y_pred)8classification_report(y_test,y_pred)9confusion_matrix(y_test,y_pred)10'''准确度(accuracy)准确度是预测正确的数(包括正样本和负样本)占所有数的比例。利用accuracy_score函数对预测数据进行模型评估,其中第一个参数是测试标记,第二个参数是预测标记值

ACC=(TP+TN)/(TP+TN+FP+FN)

sklearn的metrics模块分别提供了precision_score和recall_score函数用来评估分类模型的查全率和查准率。

精确度:precision,正确预测为正的,占全部预测为正的比例,TP/(TP+FP)

召回率:recall,正确预测为正的,占全部实际为正的比例,TP/(TP+FN)

假设有一个大小为1000的带布尔标签数据集,里面的“真”样本只有100不到,剩下都是假样本。假设训练一个模型,不管输入什么数据,它只给出“假”的预测,那么正确率依旧是90%以上,很明显,这个时候准确率accuracy就失去它的作用。因此,查全率和查准率一般用在倾斜数据集的时候。

Precision和Recall指标有的时候是矛盾的,F-Measure综合这二者指标的评估指标,用于综合反映整体的指标。F-Measure是Precision和Recall加权调和平均,a为权重因子,当a=1时,F值变为最常见的F1了,代表精确率和召回率的权重一样(fl_score)

F1值,也称为综合分类率:F1=2*precision*recall/(precision+recall),为了综合多个类别的分类情况,评测系统整体性能,经常采用的还有微平均F1(micro-averaging)和宏平均F1(macro-averaging)两种指标。宏平均F1与微平均F1是以两种不同的平均方式求的全局的F1指标。其中宏平均F1的计算方法先对每个类别单独计算F1值,再取这些F1值的算术平均值作为全局指标。而微平均F1的计算方法是先累加计算各个类别的a、b、c、d的值,再由这些值求出F1值。由两种平均F1的计算方式不难看出,宏平均F1平等对待每一个类别,所以它的值主要受到稀有类别的影响,而微平均F1平等考虑文档集中的每一个文档,所以它的值受到常见类别的影响比较大。

metrics模块的classification_report方法,综合提供了查准率(precision)、查全率(recall)和f1值三种评估指标。

混淆矩阵是一个NXN矩阵,N为分类的个数。假如我们面对的是一个二分类问题,也就是N=2,我们就得到一个2X2矩阵。在学习这个矩阵之前,我们需要知道一些简单的定义。Accuracy(准确度):预测正确的数占所有数的比例。PositivePredictiveValue(阳性预测值)orPrecision(查准率):阳性预测值被预测正确的比例。NegativePredictiveValue(阴性预测值):阴性预测值被预测正确的比例。Sensity(灵敏度)orRecall(查全率):在阳性值中实际被预测正确所占的比例。Specificity(特异度):在阴性值中实现被预测正确所占的比例。

曲线指受试者工作特征曲线或者是接收器操作特性曲线,虑一个二分问题,即将实例分成正类(positive)或负类(negative)。对一个二分问题来说,会出现四种情况。如果一个实例是正类并且也被预测成正类,即为真正类(Truepositive),如果实例是负类被预测成正类,称之为假正类(Falsepositive)。相应地,如果实例是负类被预测成负类,称之为真负类(Truenegative),正类被预测成负类则为假负类(falsenegative)。

TP:正确肯定的数目;

FN:漏报,没有正确找到的匹配的数目;

FP:误报,给出的匹配是不正确的;

TN:正确拒绝的非匹配对数;

从列联表引入两个新名词。其一是真正类率(truepositiverate,TPR),计算公式为TPR=TP/(TP+FN),刻画的是分类器所识别出的正实例占所有正实例的比例。另外一个是假正类率(falsepositiverate,FPR),计算公式为FPR=FP/(FP+TN),计算的是分类器错认为正类的负实例占所有负实例的比例。还有一个真负类率(TrueNegativeRate,TNR),也称为specificity,计算公式为TNR=TN/(FP+TN)=1-FPR。

FPR=FP/(FP+TN)负样本中的错判率(假警报率)

TPR=TP/(TP+TN)判对样本中的正样本率(命中率)

ACC=(TP+TN)/P+N判对准确率

在一个二分类模型中,对于所得到的连续结果,假设已确定一个阀值,比如说0.6,大于这个值的实例划归为正类,小于这个值则划到负类中。如果减小阀值,减到0.5,固然能识别出更多的正类,也就是提高了识别出的正例占所有正例的比类,即TPR,但同时也将更多的负实例当作了正实例,即提高了FPR。为了形象化这一变化,在此引入ROC,ROC曲线可以用于评价一个分类器。

ROC曲线其实就是从混淆矩阵衍生出来的图形,其横坐标为1-Specificity,纵坐标为Sensitivity。1-specificity=FPR(Falsepositiverate),即假正类率。Sensitivity=TPR(Truepositiverate),即是真正类率。

1importnumpyasnp2fromsklearn.metricsimportroc_curve34y=np.array([1,1,2,2])5pred=np.array([0.1,0.4,0.35,0.8])67fpr,tpr,thresholds=roc_curve(y,pred,pos_label=2)AUC(ROC曲线下面积)

1fromsklearn.metricsimportauc23auc(fpr,tpr)PR曲线

有时候模型没有单纯的谁比谁好(比如图二的蓝线和青线),所以选择模型还是要结合具体的使用场景。下面是两个场景:1,地震的预测对于地震的预测,我们希望的是RECALL非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲PRECISION。情愿发出1000次警报,把10次地震都预测正确了,也不要预测100次对了8次漏了两次。2,嫌疑人定罪基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。即时有时候放过了一些罪犯(recall低),但也是值得的。对于分类器来说,本质上是给一个概率,此时,我们再选择一个CUTOFF点(阀值),高于这个点的判正,低于的判负。那么这个点的选择就需要结合你的具体场景去选择。反过来,场景会决定训练模型时的标准,比如第一个场景中,我们就只看RECALL=99.9999%(地震全中)时的PRECISION,其他指标就变得没有了意义。当正负样本数量差距不大的情况下,ROC和PR的趋势是差不多的,但是在正负样本分布极不均衡的情况下,PRC比ROC更能真实的反映出实际情况,因为此时ROC曲线看起来似乎很好,但是却在PR上效果一般

二、回归问题

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

平均平方误差MSE(MeanSquaredError)又被称为l2范数损失(l2-normloss):

3、均方根误差(RMSE)

RMSE虽然广为使用,但是其存在一些缺点,因为它是使用平均误差,而平均值对异常点(outliers)较敏感,如果回归器对某个点的回归值很不理性,那么它的误差则较大,从而会对RMSE的值有较大影响,即平均值是非鲁棒的。

4、解释变异

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

决定系数(Coefficientofdetermination)又被称为R2分数:

三、聚类

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

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

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

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

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

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

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

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

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

计算样本i到同簇其它样本到平均距离ai。ai越小,说明样本i越应该被聚类到该簇(将ai称为样本i到簇内不相似度)。计算样本i到其它某簇Cj的所有样本的平均距离bij,称为样本i与簇Cj的不相似度。定义为样本i的簇间不相似度:bi=min(bi1,bi2,...,bik2)si接近1,则说明样本i聚类合理si接近-1,则说明样本i更应该分类到另外的簇若si近似为0,则说明样本i在两个簇的边界上

THE END
1.www.stats.gov.cn/zsk/snapshoot?reference=d466cfa12a8d807d0知识库 知识分类:|知识来源: |发布日期:https://www.stats.gov.cn/zsk/snapshoot?reference=d466cfa12a8d807d0c267a76a75d1e42_F95CF7913DA8CAEE0AF3356838E95DC6&siteCode=tjzsk
2.模型评价方法分别画图举例,要说出应用场景,例如什么情况用什么评价标准。 混淆矩阵 accuracy(准确率) precision(精准度),recall(召回率),F1-score(宏观,微观) ROC曲线图 python代码实现,例子。 (有视频参考) 5.2 项目实例运用 模型评价方法介绍 为了对模型的效果进行评估,需要好的评估方法,还需要衡量模型泛化能力的评价标准。评价https://www.jianshu.com/p/b4d40760156c
3.多分类回归模型的评估多分类模型的评价标准对于二类分类器/分类算法,评价指标主要有accuracy, [precision,recall,F-score,pr曲线],ROC-AUC曲线,gini系数。 对于多类分类器/分类算法,评价指标主要有accuracy, [宏平均和微平均,F-score]。 对于回归分析,主要有mse和r2/拟合优度。 二分类模型的评估 https://blog.csdn.net/pipisorry/article/details/52574156
4.准确度的好坏用什么衡量准确度的高低常以误差的大小来衡量。 指在一定实验条件下多次测定的平均值与真值相符合的程度,以误差来表示。它用来表示系统误差的大小。在实际工作中,通常用标准物质或标准方法进行对照试验。 在无标准物质或标准方法时,常用加入被测定组分的纯物质进行回收试验来估计和确定准确度。在误差较小时,也可通过多次平行测定https://edu.iask.sina.com.cn/jy/2qNhewDUTGh.html
5.关于公开征求《个体化用药基因检测试剂临床评价注册审查指导原则可通过申报产品与测序结果或已上市同类产品进行方法学比对研究,评价申报产品的准确度;也可通过检测参考品(盘)分析申报产品检测结果与经确认结果的符合情况,评价申报产品的准确度。 评价准确度的样本应由若干份临床样本组成,样本类型应与产品适用范围一致,包含不同浓度水平。 https://www.ciopharma.com/supervise/35307
6.一致性评价重磅参考资料:(USP1092)溶出度试验的开发和验证1. 前期评估(对产品发展以及溶出度方法开发的前期研究评估) 在方法开发之前,对用以评价剂型的溶出行为的滤膜、溶出介质、介质体积和溶出设备进行筛选是非常重要的。 1.1滤膜相容性研究 在获得准确试验结果中,过滤是一个样品制备的关键步骤。过滤的目的是为了去除溶出液中未溶解的药物和辅料。如果不把未溶解的药物和辅http://www.bkmdkj.com/a/gongsixinwen/259.html
7.药物分析方法验证思路依然很乱!这篇文章拿走不谢方法验证的评价应围绕验证目的进行,同时关注方法验证内容的全面性和试验方案的系统性和合理性,以及验证过程的规范性。 2.2方法验证需要关注的问题 2.2.1杂质定量方法验证 杂质定量试验要验证方法的专属性、检测限、定量限、线性、范围、准确度、精密度等。为考察方法能否有效检出原料药或制剂中的杂质,可采用原料药尚未https://www.canbigou.com/index.php/d/623.html
8.体外诊断检验系统性能评价方法:检出限与定量限鉴于定量限定义的灵活性,当报告定量限估计时,要求包括其确定时的准确度目标。准确度目标应以不确定表示,当不确定度不宜获得时,准确度目标优先设定为总误差目标。在某些情况下,如无法在合适的低水平待测物浓度下确定不确定度或总误差目标,可采用其它合理的替代方法建立定量限,例如研究试剂精密度达到固定要求时的最低http://www.caclp.com/article/?detail_12140.html
9.体表损伤与瘢痕的三维测量方法应用评估方法对比分析直尺法、结构光三维扫描法和单相机摄影测量法对86处尸体损伤的测量结果;对比分析结构光三维扫描法、单相机摄影测量法、Photoshop套索像素法、PDF阅读软件法对13处活体模拟块状瘢痕面积的测量结果,并记录所耗时间;以贴纸的已知规格信息作为标准值,比较直尺法、结构光三维扫描法和单相机摄影测量法的测量准确度,http://www.huao3d.com/display/398818.html
10.YY∕T1789.2《YY∕T1789.2-2021体外诊断检验系统性能评价方法第2部分:正确度》摘要:文章介绍了YY∕T1789.2-2021体外诊断检验系统的性能评价方法,并对比了不同技术的应用效果。关键词:体外诊断检验系统,性能评价,准确性,国家药品监督管理局 ICS11.100.10 c30 中华人民共和国医药行业标准 https://m.book118.com/html/2024/0502/7200035020006103.shtm