分类算法评估|学习笔记

简介: 快速学习分类算法评估

开发者学堂课程【高校精品课-华东师范大学 - Python 数据科学基础与实践分类算法评估】学习笔记,与课程紧密联系,让用户快速学习知识。

课程地址:https://developer.aliyun.com/learning/course/1067/detail/15519


分类算法评估

 

主要内容

一、混淆矩阵

二、混淆矩阵应用示例

 

本章第一节在分类算法概述中已经简单讲解了分类算法的评估,本节详细介绍分类算法的评估。按照数据挖掘的流程,在建立模型之后一定要进行算法的评估,只有评估合格通过的模型才能被实际使用。在分类算法的评估中,一个十分核心的概念叫做混淆矩阵,同时也是分类算法进行评估的依据。

 

一、混淆矩阵

混淆矩阵(Confusion Matrix)多用于判断分类器(Classifier )的优劣,适用于分类型的数据模型。

以分类模型中最简单的二元分类为例,对于这种问题,我们的模型最终需要判断样本的结果是0还是1,或者说是positive还是negative。以二元分类为例,同时也便于同学们理解。

1、混淆矩阵的4个一级指标:

image.png观察上图可知,混淆矩阵是一个二维表,真实的样本值看列,真实值是正的样本看第一列,真实值是负的样本看第二列,真实值是正的样本为TP+FN,真实值是负的样本为FP+TN,做好的模型要对这些样本进行预测则看行,因为行为预测值,预测为正的样本看第一行,预测为负的样本看第二行,中间的四个单元格为进行评估的四个重要的一级指标。

接下来对此四个一级指标进行解释,TP为真阳率,真阳率是指真实样本为正的、预测也为正;FP为假阳率,假阳率是指真实样本为负的、预测为正;TN为真阴率,真阴率是指真实样本为负的、预测也为负;FN为假阴率,假阴率是指真实样本为正的、预测也为负。

此四个一级指标(真阳率、假阳率、真阴率、假阴率)再进一步构成四个二级指标。

2、混淆矩阵的4个二级指标:

网络异常,图片无法展示
|
上图可知,第一个二级指标为准确率,准确率是指所有预测都是正确的样本除以样本的总数,可以看到,TP真阳率本身样本是正的,预测也为正,TN真阴率为本身样本是负的,预测也为负,就是预测正确的除以总数得到的结果就为准确率,即分类模型所有判断正确的结果占总观测值的比重,准确率反映整个模型整体质量。

第二个二级指标为精确率,与准确率不一致,精确率往往以某一类为主。例如只看正的样本,就像检测疾病里有没有呈阳性的,故此二元分类里面有一个类别是十分重要的,此处以正的为主。精确率是指正的样本除以所有预测正确样本的总数TP+FP,指模型预测是正的所有结果中,模型预测正确的比重。第三个二级指标为灵敏度,灵敏度比较少见,听的较多的为recall 召回,是指模型预测正确的样本除以整个正确的样本总数,指真实样本是正的样本当中含有预测为正确的样本的比例,即真实值是正的真实结果中,模型预测对的比重。第四个二级指标为特异度,是指模型当中负的样本是预测正确的占整个负的样本的总数,即模型当中看重负的样本,则为负的样本的召回率,将之称为特异度。以上为四个二级指标的介绍,同学们要及时巩固,使用也较多。4个二级指标是4个一级指标衍生而来,评估过程中需要运用到此四个重要的二级指标。四个二级指标中有两个为重中之重,分别为精确率与灵敏度,反而准确率则不是特别重要,因为在实际应用里面,以二元分类为例,更加关注其中一个类别。

以疾病为示例,在真正有疾病的人群当中找到有疾病的人数越多越好,而不是说若本身没有疾病(负的是对的),叠加在一起是没有实际意义的。

3、混淆矩阵的1个三级指标

image.png利用混淆矩阵可以产生一个三级指标,此三级指标经常被称为F值,F值里面使用最多的为F1值,计算公式如图所示,精度(P)和召回率(R)之间的关系,公式为2PR/P+R,故F1值是综合了精确率与召回率的产出结果。F1值的取值范围为0到1之间,越接近1代表模型的输出越好,越接近0代表模型的输出结果越差。F值在许多模型算法评估里面许多情况可以直接使用F1代替,若要对此研究并撰写论文,主要看F1值的大小,F1值越高越好。

值得注意的是,F1值代表精确率与召回率之间的某种关系,之前有遇到同学在编写论文时提到了F1值,F1值同时提供了P值与R值,通过计算发现之间没有关系,则此F1值为同学自己编写的,故这样做是不正确的,同学们要切记不要发生这种低级错误。

 

二、混淆矩阵应用示例

image.png观察上图可知,此矩阵不是二元类别,此为三元类别、标签分类、多元分类。此示例涉及到的动物有猫、狗及兔子。之前讲解的混淆矩阵列是真实值,行为预测值,但有些情况可能为排版问题,有些软件行为真实值,列为预测值,为了让同学们注意到,此示例为行为真实值,列为预测值。

此示例中,真实值中猫为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个三级指标,以便在之后的实验当中能够快速建立联系。

相关文章
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
在 Python 编程中,算法的性能至关重要。本文将带您深入了解算法复杂度的概念,包括时间复杂度和空间复杂度。通过具体的例子,如冒泡排序算法 (`O(n^2)` 时间复杂度,`O(1)` 空间复杂度),我们将展示如何评估算法的性能。同时,我们还会介绍如何优化算法,例如使用 Python 的内置函数 `max` 来提高查找最大值的效率,或利用哈希表将查找时间从 `O(n)` 降至 `O(1)`。此外,还将介绍使用 `timeit` 模块等工具来评估算法性能的方法。通过不断实践,您将能更高效地优化 Python 程序。
307 4
|
算法 搜索推荐 开发者
别再让复杂度拖你后腿!Python 算法设计与分析实战,教你如何精准评估与优化!
【7月更文挑战第23天】在Python编程中,掌握算法复杂度—时间与空间消耗,是提升程序效能的关键。算法如冒泡排序($O(n^2)$时间/$O(1)$空间),或使用Python内置函数找最大值($O(n)$时间),需精确诊断与优化。数据结构如哈希表可将查找从$O(n)$降至$O(1)$。运用`timeit`模块评估性能,深入理解数据结构和算法,使Python代码更高效。持续实践与学习,精通复杂度管理。
172 9
|
机器学习/深度学习 数据采集 算法
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
Python实现贝叶斯岭回归模型(BayesianRidge算法)并使用K折交叉验证进行模型评估项目实战
|
机器学习/深度学习 算法
GBDT算法超参数评估(一)
GBDT(Gradient Boosting Decision Tree)是一种强大的机器学习技术,用于分类和回归任务。超参数调整对于发挥GBDT性能至关重要。其中,`n_estimators`是一个关键参数,它决定了模型中弱学习器(通常是决策树)的数量。增加`n_estimators`可以提高模型的复杂度,提升预测精度,但也可能导致过拟合,并增加训练时间和资源需求。
|
机器学习/深度学习 算法
GBDT算法超参数评估(二)
GBDT算法超参数评估关注决策树的不纯度指标,如基尼系数和信息熵,两者衡量数据纯度,影响树的生长。默认使用基尼系数,计算快速,而信息熵更敏感但计算慢。GBDT的弱评估器默认最大深度为3,限制了过拟合,不同于随机森林。由于Boosting的内在机制,过拟合控制更多依赖数据和参数如`max_features`。相比Bagging,Boosting通常不易过拟合。评估模型常用`cross_validate`和`KFold`交叉验证。
|
机器学习/深度学习 算法 BI
机器学习笔记(一) 感知机算法 之 原理篇
机器学习笔记(一) 感知机算法 之 原理篇
|
机器学习/深度学习 算法 搜索推荐
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
支付宝商业化广告算法问题之在DNN模型中,特征的重要性如何评估
209 0
|
搜索推荐 算法 UED
基于Python的推荐系统算法实现与评估
本文介绍了推荐系统的基本概念和主流算法,包括基于内容的推荐、协同过滤以及混合推荐。通过Python代码示例展示了如何实现基于内容的推荐和简化版用户-用户协同过滤,并讨论了推荐系统性能评估指标,如预测精度和覆盖率。文章强调推荐系统设计的迭代优化过程,指出实际应用中需考虑数据稀疏性、冷启动等问题。【6月更文挑战第11天】
2237 3
|
人工智能 算法 C++
c++算法学习笔记 (17) 质数
c++算法学习笔记 (17) 质数
|
算法 C++
c++算法学习笔记 (15) 单调栈与单调队列
c++算法学习笔记 (15) 单调栈与单调队列

热门文章

最新文章