机器学习入门之模型性能评估与度量

ops/2024/10/21 13:42:06/

文章目录

    • 性能评估
      • 误差
      • 欠拟合和过拟合
      • 模型选择与数据拟合
    • 性能度量
      • 二分类的混淆矩阵
        • 查全率
        • 查准率
        • F1分数
      • P-R曲线
      • ROC曲线
      • AUC

性能评估

机器学习的模型有很多,我们在选择的时候就需要对各个模型进行对比,这时候就需要一个靠谱的标准,能够评估模型的性能

这里的性能不是说算的有多快,而是说预测的结果和真实情况进行比较的来的结果

误差

在我们对训练的结果进行分析之前,首先需要思考模型训练过程中是否可能有误差的产生,因为这同样会影响结果和对模型选择产生比较大的影响

误差主要会出现在数据集的三个部分,分别是训练集、测试集、新样本

  1. 训练集——训练误差
  2. 测试集——测试误差
  3. 新样本——泛化误差

所谓的训练误差指的是训练集本身存在缺陷,从而模型提取的错误的特征信息,例如一个只认识红色苹果的模型,遇到绿色苹果时,他就不认为这是苹果了

一般情况下拿到一个数据集,会将其分成两部分,分别作为训练集和测试集,那么对于训练完成的模型,此时测试集也相当于是一个新样本

训练模型的时候,一开始训练误差和测试误差都会比较高,但是训练次数越多,训练误差会越来越小,但是测试误差可能会变大,而且模型的复杂度也会随之提升

这样的现象我们分别称之为欠拟合和过拟合

欠拟合和过拟合

欠拟合的概念很好理解,其实就是由于数据量不够大,模型的准确率不够多,也就是一开始我们学习的时候没有足够的理解一样,有时也称之为高偏差(high bias)

而过拟合则是属于过犹不及的那种感觉,就好像呆板僵化的思维,好像有些人做数学题,尽管题目非常接近,仅仅是更换了数字,但是他仍然认为这是两种完全不同的题目,这样带来的一种效果就是对于训练集(已经做过的题目)正确率很高,但是对于新样本的能力就会比较差,有时也称为高方差(high variance)

想要克服这两种现象,对于欠拟合是比较容易的,例如在决策树算法中扩展分支,在神经网络中增加训练的轮数,但是过拟合就困难的多,主要是因为模型过于复杂,我们需要的是简化模型,这种纠正策略称之为正则化(regularization)

模型选择与数据拟合

我们在模型选择时一定不能一味追求降低训练误差,因为想要有较强的数据拟合能力,就需要将模型的复杂度不断提升

也就是需要遵循一条原则,避免过拟合并且提高泛化能力

例如我们想要对一组数据想要拟合出一个多项式函数

假设有一个数据集 T = { ( x 1 , y 1 ) , ( x 2 , y 2 ) , … , ( x n , y n ) } T=\{(x_1,y_1),(x_2,y_2),\dots,(x_n,y_n)\} T={(x1,y1),(x2,y2),,(xn,yn)} x i x_i xi为样本的观测值(特征、自变量), y i y_i yi是对应的输出观测值(因变量)

我们想要找到一个m次多项式函数能够拟合这些数据,目标是能够较好拟合并且预测

设这个m次多项式函数的一般形式为: f m ( x , w ) = w 0 x 0 + w 1 x 1 + w 2 x 2 + ⋯ + w m x m = ∑ j = 0 m w j x j f_m(x,w)=w_0x^0+w_1x^1+w_2x^2+\dots+w_mx^m=\sum_{j=0}^{m}w_jx^j fm(x,w)=w0x0+w1x1+w2x2++wmxm=j=0mwjxj

对于这个公式的解读:

  1. 有m+1个特征值,x的次数从0到m
  2. 有m+1个需要通过训练(学习)得到的权值参数,w的下标从0到m
  3. 这里参数的正负,绝对值大小就分别代表了对于这个特征的态度,绝对值越大权重越大
  4. 可以有意识的调整某些权值让他趋近于0,从而抛弃某些特征,称之为权重衰减(weight decay),在某种程度上可以避免过拟合

那如何训练学习这个m+1个参数呢,常用的策略之一是最小二乘法(Method of Least Squares)

通过这个方法拟合出来的函数值 f ( x i , w ) f(x_i,w) f(xi,w)(得到的预测结果)和真实的 y i y_i yi是由误差的,数学上称之为残差(residual)

e i = f ( x i , w ) − y i e_i=f(x_i,w)-y_i ei=f(xi,w)yi

高斯证明了,在这个残差集合独立同分布的假定下,最小二乘法有一个优势,就是在所有的无偏线性估计类中方差最小,也就是当残差的平方和最小时,拟合函数的相似度最高,也就是如下函数取最小值时,拟合效果最好

L ( w ) = 1 2 ∑ i = 1 n ( f ( x i , w ) − y i ) 2 L(w)=\frac{1}{2}\sum_{i=1}^{n}(f(x_i,w)-y_i)^2 L(w)=21i=1n(f(xi,w)yi)2

性能度量

上面我们讲到的其实是性能评估的一般思路,接下来我们就需要找到一个标准,能够确切的评判性能的高低了

二分类的混淆矩阵

二值分类器(Binary Classifier)是在机器学习中应用最广泛的分类器之一,二值分类指的是正类和负类,我们为了方便陈述称之为真和假

主要分四类

  • 真正类(True Positive,TP),实际为真,被模型预测为真,为了方便理解,我们说他是应该被选上且已经被选上了的
  • 假正类(False Positive,FP),实际为假,被模型预测为真,应该没被选上(被忽略)但是被选上了的
  • 真负类(True Negative,TN),实际为假,被模型预测为假,应该被忽略且已经被忽略了的
  • 假负类(False Negative,FN),实际为真,被模型预测为假,应该被忽略但被选上了的

这四类加起来就是总样本数,然后第一类和第三类是正确预测了的,第二类和第四类是预测失误了的,分别称之为误报、第一类错误,漏报、第二类错误

这四组样本就构成了混淆矩阵(confusion matrix),确实容易混淆

由这四组样本就能产生一些比例作为判断,再通过这些比例之间的关系,我们就能找到更优的模型了

主要有以下几个,查全率,查准率,F1分数,P-R曲线,ROC曲线

我们尽量避免过于不说人话的描述,用最简单容易理解的话来讲清楚这些概念

在说这些概念之前,我们先画一个简单的示意图,可以配合起来理解

image.png

查全率

查全率(Recall,R,召回率),表示分类准确的正类样本数占全部正类样本数的比例,说人话就是在所有应该被选上的样本中,选上了的比例是多少,也就是左边那一半TP占的比例 R = T P T P + F N R=\frac{TP}{TP+FN} R=TP+FNTP

查准率

查准率(Precision,P),表示被预测正确的正类样本数占分类器判定为正类样本总数的比例,说人话就是所有被选上的样本中,选对了的样本比例是多少,也就是这个圆里面左边占的部分比例 P = T P T P + F P P=\frac{TP}{TP+FP} P=TP+FPTP

需要注意的是,查准率和准确率是有区别的,准确率应该是正确判断的样本除总样本得到的比例

一般来说查准率和查全率是呈负相关的,那有没有可以兼顾这样两个比率的呢,或者说有没有一个值可以用来调整他们之间的比重关系

F1分数

本质上来说F1分数是查准率和查全率的调和平均数

1 F 1 = 1 2 ( 1 P + 1 R ) \frac{1}{F1}=\frac{1}{2}(\frac{1}{P}+\frac{1}{R}) F11=21(P1+R1)整理一下就是 F 1 = 2 × P × R P + R F1=2\times\frac{P\times R}{P+R} F1=2×P+RP×R

想要有所偏向,就可以引入参数 β \beta β

1 F β = 1 1 + β 2 ( 1 P + β 2 R ) \frac{1}{F_\beta}=\frac{1}{1+\beta^2}(\frac{1}{P}+\frac{\beta^2}{R}) Fβ1=1+β21(P1+Rβ2)整理一下就是 F β = ( 1 + β 2 ) 1 1 P + β 2 R F_\beta=(1+\beta^2)\frac{1}{\frac{1}{P}+\frac{\beta^2}{R}} Fβ=(1+β2)P1+Rβ21

β > 1 \beta>1 β>1时, β 2 R \frac{\beta^2}{R} Rβ2项占比较大,即查全率的影响更大,反之则查准率的影响更大

P-R曲线

P-R曲线其实很简单,因为查准率和查全率大致成负相关,就可以分别将查全率和查准率作为坐标轴画出图形,那么这其中变化的是什么呢,其实就是我们设定的临界值,之后的ROC曲线也是类似,选取的标准不同,查全率和查准率的数值也会不同

当两个模型的P-R曲线都绘制出来之后,我们就可以根据曲线进行抉择了

第一种情况是一个模型的曲线完全在另一个曲线的上方,也就是查全率和查准率都高于另一个,那就直接选了

但是更通常的情况是交替出现,这时候就有一个所谓的平衡点(Break-Even Pont、BEP),就是y=x这条直线和两条曲线的交点,一般认为谁的交点在上方,谁就更优

P-R曲线的优点是非常直观,但是缺点也很明显,受样本分布的影响非常大

于之相比,ROC曲线就相对更优,也因此作为重要的指标之一

ROC_131">ROC曲线

P-R曲线对应的,ROC曲线的横纵坐标也是两个比率

第一个比率是真阳性率(True Positive Rate,TPR),简单说就是应该被忽略但没有被忽略的占比, T P R = F P T N + F P TPR=\frac{FP}{TN+FP} TPR=TN+FPFP

第二个比率是假阳性率(False Positive Rate,FPR),简单说就是应该被选中并且已经被选中的占比, F P R = T P T P + F N FPR=\frac{TP}{TP+FN} FPR=TP+FNTP

把假阳性率作为横轴,真阳性率作为纵轴,就能画出ROC曲线了,并且变化的仍然是选取的标准不同

现在已经绘制出了对应的ROC曲线了,应该如何选取更优的模型呢

AUC

AUC是Area Under Curve,意思是曲线下的区域,那其实就是ROC曲线与X轴的面积

一般认为AUC在0.5到1之间,如果不在这个范围内,只需要将模型的预测概率P反转成1-P就能得到一个更好的分类器

并且AUC的值越高,我们认为这个模型就越优


http://www.ppmy.cn/ops/34349.html

相关文章

阿里实习生:面试阿里其实并没有那么难。

愉快的五一假期已经结束了, 又要投入到学习和工作当中了。 今天分享一位同学在阿里的Go后端实习面经详解, 希望对你有帮助。 Go里有哪些数据结构是并发安全的? 并发安全就是程序在并发的情况下执行的结果都是正确的; Go中数据类型分为两大类&#xff…

道可道,非常道,名可名,非常名;学习道德经新解读!打破思想钢印——早读(逆天打工人爬取热门微信文章解读)

你读过道德经吗? 引言Python 代码第一篇 洞见 原来这就是:穷人的思想钢印第二篇 人民日报 来了!新闻早班车要闻社会政策 结尾 知识始于好奇 终于智慧 好奇心驱使我们探索 而智慧则是自由思想的结晶 引言 玄之又玄 众妙之门 今天真的是大开我的眼界 我之…

springboot医院信管系统

摘 要 随着信息技术和网络技术的飞速发展,人类已进入全新信息化时代,传统管理技术已无法高效,便捷地管理信息。为了迎合时代需求,优化管理效率,各种各样的管理系统应运而生,各行各业相继进入信息管理时代,医院信管系统就是信息时代变革中的产物之一。 任何系统都要遵循…

Navicat 17 Beta | 下载链接

Navicat Premium 17 Beta 英文版 Windows https://dn.navicat.com.cn/download/beta/navicat170_premium_en_x64.exe Mac https://dn.navicat.com.cn/download/beta/navicat170_premium_en.dmg Linux (x86_64) https://dn.navicat.com.cn/download/beta/navicat17-premiu…

一区9分Top|研究AD的充分不必要条件:不同皮质区域队列数据+多组学

说在前面 不论是做药还是想发高分文章,神经退行性疾病一直是个难题,神经元死亡、异常蛋白累积这些是很复杂的东西。而且认知功能的衰退是整个大脑网络的结果,因此只挑单个区域队列数据做早期标志物筛选这种,emm也能做&#xff0c…

【C语言】指针篇- 深度解析Sizeof和Strlen:热门面试题探究(5/5)

🌈个人主页:是店小二呀 🌈C语言笔记专栏:C语言笔记 🌈C笔记专栏: C笔记 🌈喜欢的诗句:无人扶我青云志 我自踏雪至山巅 文章目录 一、简单介绍Sizeof和Strlen1.1 Sizeof1.2 Strlen函数1.3 Sie…

[入门] Unity Shader前置知识(5) —— 向量的运算

在Unity中,向量无处不在,我想很多人都使用过向量类的内置方法 normalized() 吧,我们都知道该方法是将其向量归一化从而作为一个方向与速度相乘,以达到角色朝任一方向移动时速度都相等的效果,但内部具体是如何将该向量进…

三维变换矩阵实战——三维点云的旋转、缩放、镜像、错切、平移、正交投影

一、旋转矩阵(右手坐标系) 绕x轴旋转 旋转矩阵:右边矩阵是点云的原始坐标,左边的是旋转矩阵 可视化:绕x轴旋转90度 代码: import vtk import numpy as np import mathdef pointPolydataCreate(pointClou…