开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践:分类算法评估】学习笔记,与课程紧密联系,让用户快速学习知识。
课程地址:https://developer.aliyun.com/learning/course/1067/detail/15519
分类算法评估
主要内容
一、混淆矩阵
二、混淆矩阵应用示例
本章第一节在分类算法概述中已经简单讲解了分类算法的评估,本节详细介绍分类算法的评估。按照数据挖掘的流程,在建立模型之后一定要进行算法的评估,只有评估合格通过的模型才能被实际使用。在分类算法的评估中,一个十分核心的概念叫做混淆矩阵,同时也是分类算法进行评估的依据。
一、混淆矩阵
混淆矩阵(Confusion Matrix)多用于判断分类器(Classifier )的优劣,适用于分类型的数据模型。
以分类模型中最简单的二元分类为例,对于这种问题,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。以二元分类为例,同时也便于同学们理解。
1、混淆矩阵的4个一级指标:
观察上图可知,混淆矩阵是一个二维表,真实的样本值看列,真实值是正的样本看第一列,真实值是负的样本看第二列,真实值是正的样本为TP+FN,真实值是负的样本为FP+TN,做好的模型要对这些样本进行预测则看行,因为行为预测值,预测为正的样本看第一行,预测为负的样本看第二行,中间的四个单元格为进行评估的四个重要的一级指标。
接下来对此四个一级指标进行解释,TP为真阳率,真阳率是指真实样本为正的、预测也为正;FP为假阳率,假阳率是指真实样本为负的、预测为正;TN为真阴率,真阴率是指真实样本为负的、预测也为负;FN为假阴率,假阴率是指真实样本为正的、预测也为负。
此四个一级指标(真阳率、假阳率、真阴率、假阴率)再进一步构成四个二级指标。
2、混淆矩阵的4个二级指标:
第二个二级指标为精确率,与准确率不一致,精确率往往以某一类为主。例如只看正的样本,就像检测疾病里有没有呈阳性的,故此二元分类里面有一个类别是十分重要的,此处以正的为主。精确率是指正的样本除以所有预测正确样本的总数TP+FP,指模型预测是正的所有结果中,模型预测正确的比重。第三个二级指标为灵敏度,灵敏度比较少见,听的较多的为recall 召回,是指模型预测正确的样本除以整个正确的样本总数,指真实样本是正的样本当中含有预测为正确的样本的比例,即真实值是正的真实结果中,模型预测对的比重。第四个二级指标为特异度,是指模型当中负的样本是预测正确的占整个负的样本的总数,即模型当中看重负的样本,则为负的样本的召回率,将之称为特异度。以上为四个二级指标的介绍,同学们要及时巩固,使用也较多。4个二级指标是4个一级指标衍生而来,评估过程中需要运用到此四个重要的二级指标。四个二级指标中有两个为重中之重,分别为精确率与灵敏度,反而准确率则不是特别重要,因为在实际应用里面,以二元分类为例,更加关注其中一个类别。
以疾病为示例,在真正有疾病的人群当中找到有疾病的人数越多越好,而不是说若本身没有疾病(负的是对的),叠加在一起是没有实际意义的。
3、混淆矩阵的1个三级指标
利用混淆矩阵可以产生一个三级指标,此三级指标经常被称为F值,F值里面使用最多的为F1值,计算公式如图所示,精度(P)和召回率(R)之间的关系,公式为2PR/P+R,故F1值是综合了精确率与召回率的产出结果。F1值的取值范围为0到1之间,越接近1代表模型的输出越好,越接近0代表模型的输出结果越差。F值在许多模型算法评估里面许多情况可以直接使用F1代替,若要对此研究并撰写论文,主要看F1值的大小,F1值越高越好。
值得注意的是,F1值代表精确率与召回率之间的某种关系,之前有遇到同学在编写论文时提到了F1值,F1值同时提供了P值与R值,通过计算发现之间没有关系,则此F1值为同学自己编写的,故这样做是不正确的,同学们要切记不要发生这种低级错误。
二、混淆矩阵应用示例
观察上图可知,此矩阵不是二元类别,此为三元类别、标签分类、多元分类。此示例涉及到的动物有猫、狗及兔子。之前讲解的混淆矩阵列是真实值,行为预测值,但有些情况可能为排版问题,有些软件行为真实值,列为预测值,为了让同学们注意到,此示例为行为真实值,列为预测值。
此示例中,真实值中猫为8个,狗为6个,兔子为13个,模型预测的结果为猫有7个,其中5个为猫,其余两个预测为狗,其他动物的情况可以按照这种方法进行对应查看。此模型的准确率为对角线上真实值与预测值是一致的结果相加为5+3+11=19,总数为27只动物,则准确率为19/27=0.70。
接下来计算猫这一类别的精确率,预测为猫的总数为7,其中正确的为5个,故猫这一类别的精确率为5/7=0.71。然后计算猫这一类别的召回率,真实值猫为8个,预测正确的为5个,故召回率为5/8=0.625。以上内容为混淆矩阵的应用示例,需要学会每一个指标的计算方法,课上并没有全部列出,同学们课后可以自己对照尝试列出计算式子。
关于分类算法的评估,在之后的实验当中会实际体现。需要同学们记住混淆矩阵的4个一级指标、4个二级指标以及1个三级指标,以便在之后的实验当中能够快速建立联系。


