20240327-1-评测指标面试题

在这里插入图片描述

评测指标面试题

metric主要用来评测机器学习模型的好坏程度,不同的任务应该选择不同的评价指标,分类,回归和排序问题应该选择不同的评价函数. 不同的问题应该不同对待,即使都是分类问题也不应该唯评价函数论,不同问题不同分析.

回归(Regression)

平均绝对误差(MAE)

平均绝对误差MAE(Mean Absolute Error)又被称为 L1范数损失。
M A E = 1 n ∑ i = 1 n ∣ y i − y ^ i ∣ (1) MAE=\frac{1}{n}\sum_{i=1}^{n}|y_i-\hat{y}_i| \tag{1} MAE=n1i=1nyiy^i(1)
MAE虽能较好衡量回归模型的好坏,但是绝对值的存在导致函数不光滑,在某些点上不能求导,可以考虑将绝对值改为残差的平方,这就是均方误差。

均方误差(MSE)

均方误差MSE(Mean Squared Error)又被称为 L2范数损失 。
M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 (2) MSE=\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2 \tag{2} MSE=n1i=1n(yiy^i)2(2)
由于MSE与我们的目标变量的量纲不一致,为了保证量纲一致性,我们需要对MSE进行开方 。

均方根误差(RMSE)

R M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 (3) RMSE=\sqrt{\frac{1}{n}\sum_{i=1}^{n}(y_i-\hat{y}_i)^2} \tag{3} RMSE=n1i=1n(yiy^i)2 (3)

R2_score

R 2 s c o r e = 1 − ∑ i n ( y i − y ^ ) 2 / n ∑ i n ( y i − y ˉ ) 2 / n = 1 − M S E Var ⁡ (4) R2_score =1-\frac{\sum^n_{i}\left(y_{i}-\hat{y}\right)^{2} / n}{\sum^n_{i}\left(y_{i}-\bar{y}\right)^{2} / n}=1-\frac{M S E}{\operatorname{Var}} \tag{4} R2score=1in(yiyˉ)2/nin(yiy^)2/n=1VarMSE(4)

R 2 s c o r e R2{_score} R2score又称决定系数,表示反应因变量的全部变异能通过数学模型被自变量解释的比例, R 2 _ s c o r e R2\_{score} R2_score越大,模型准确率越好。

y y y表示实际值, y ^ \hat{y} y^表示预测值, y ˉ \bar{y} yˉ表示实际值的均值, n n n表示样本数, i i i表示第 i i i个样本。 V a r Var Var表示实际值的方差,也就是值的变异情况。

M S E MSE MSE表示均方误差,为残差平方和的均值,该部分不能能被数学模型解释的部分,属于不可解释性变异。

因此:
可解释性变异占比 = 1 − 不可解释性变异 整体变异 = 1 − M S E Var ⁡ = R 2 _ s c o r e (5) 可解释性变异占比 = 1-\frac{不可解释性变异}{整体变异}= 1-\frac{M S E}{\operatorname{Var}} = R2\_score \tag{5} 可解释性变异占比=1整体变异不可解释性变异=1VarMSE=R2_score(5)

分类(Classification)

准确率和错误率

A c c ( y , y ^ ) = 1 n ∑ i = 1 n y i = y i ^ (6) Acc(y,\hat{y})=\frac{1}{n}\sum_{i=1}^{n}y_i=\hat{y_i} \tag{6} Acc(y,y^)=n1i=1nyi=yi^(6)

E r r o r ( y , y ^ ) = 1 − a c c ( y , y ^ ) (7) Error(y, \hat{y})=1-acc(y,\hat{y}) \tag{7} Error(y,y^)=1acc(y,y^)(7)
Acc与Error平等对待每个类别,即每一个样本判对 (0) 和判错 (1) 的代价都是一样的。使用Acc与Error作为衡量指标时,需要考虑样本不均衡问题以及实际业务中好样本与坏样本的重要程度。

混淆矩阵

对于二分类问题,可将样例根据其真是类别与学习器预测类别的组合划分为:

真正例(true positive, TP):预测为 1,预测正确,即实际 1
假正例(false positive, FP):预测为 1,预测错误,即实际 0
真反例(ture negative, TN):预测为 0,预测正确,即实际 0
假反例(false negative, FN):预测为 0,预测错误,即实际 1

精确率(查准率) Precision

Precision 是分类器预测的正样本中预测正确的比例,取值范围为[0,1],取值越大,模型预测能力越好。
P = T P T P + F P (8) P=\frac{TP}{TP+FP} \tag{8} P=TP+FPTP(8)

召回率(查全率)Recall

Recall 是分类器所预测正确的正样本占所有正样本的比例,取值范围为[0,1],取值越大,模型预测能力越好。
R = T P T P + F N (9) R=\frac{TP}{TP+FN} \tag{9} R=TP+FNTP(9)

F1 Score

Precision和Recall 是互相影响的,理想情况下肯定是做到两者都高,但是一般情况下Precision高、Recall 就低, Recall 高、Precision就低。为了均衡两个指标,我们可以采用Precision和Recall的加权调和平均(weighted harmonic mean)来衡量,即F1 Score
1 F 1 = 1 2 ⋅ ( 1 P + 1 R ) (10) \frac{1}{F_1}=\frac{1}{2} \cdot (\frac{1}{P}+\frac{1}{R}) \tag{10} F11=21(P1+R1)(10)

F 1 = 2 ∗ P ∗ R P + R (11) F_1=\frac{2*P*R}{P+R} \tag{11} F1=P+R2PR(11)

ROC

ROC全称是"受试者工作特征"(Receiver Operating Characteristic)曲线. ROC曲线为 FPR 与 TPR 之间的关系曲线,这个组合以 FPR 对 TPR,即是以代价 (costs) 对收益 (benefits),显然收益越高,代价越低,模型的性能就越好。 其中ROC曲线的横轴是"假正例率"(False Positive Rate, FPR), 纵轴是"真正例率"(True Positive Rate, TPR), 注意这里不是上文提高的P和R.

  • y 轴为真阳性率(TPR):在所有的正样本中,分类器预测正确的比例(等于Recall)

T P R = T P T P + F N (12) TPR=\frac{TP}{TP+FN} \tag{12} TPR=TP+FNTP(12)

  • x 轴为假阳性率(FPR):在所有的负样本中,分类器预测错误的比例

F P R = F P T N + F P (13) FPR=\frac{FP}{TN+FP} \tag{13} FPR=TN+FPFP(13)

现实使用中,一般使用有限个测试样例绘制ROC曲线,此时需要有有限个(真正例率,假正例率)坐标对. 绘图过程如下:

  1. 给定 m + m^+ m+个正例和 m − m^- m个反例,根据学习器预测结果对样例进行排序,然后将分类阈值设为最大,此时真正例率和假正例率都为0,坐标在(0,0)处,标记一个点.
  2. 将分类阈值依次设为每个样本的预测值,即依次将每个样本划分为正例.
  3. 假设前一个坐标点是(x,y),若当前为真正例,则对应坐标为 ( x , y + 1 m + ) (x,y+\frac{1}{m^+}) (x,y+m+1), 若是假正例,则对应坐标为 ( x + 1 m − , y ) (x+\frac{1}{m^-}, y) (x+m1,y)
  4. 线段连接相邻的点.

AUC

对于二分类问题,预测模型会对每一个样本预测一个得分s或者一个概率p。 然后,可以选取一个阈值t,让得分s>t的样本预测为正,而得分s<t的样本预测为负。 这样一来,根据预测的结果和实际的标签可以把样本分为4类,则有混淆矩阵:

实际为正实际为负
预测为正TPFP
预测为负FNTN

随着阈值t选取的不同,这四类样本的比例各不相同。定义真正例率TPR和假正例率FPR为:
T P R = T P T P + F N F P R = F P F P + T N (14) \begin{array}{l} \mathrm{TPR}=\frac{\mathrm{TP}}{\mathrm{TP}+\mathrm{FN}} \\ \mathrm{FPR}=\frac{\mathrm{FP}}{\mathrm{FP}+\mathrm{TN}} \end{array} \tag{14} TPR=TP+FNTPFPR=FP+TNFP(14)
随着阈值t的变化,TPR和FPR在坐标图上形成一条曲线,这条曲线就是ROC曲线。 显然,如果模型是随机的,模型得分对正负样本没有区分性,那么得分大于t的样本中,正负样本比例和总体的正负样本比例应该基本一致。

实际的模型的ROC曲线则是一条上凸的曲线,介于随机和理想的ROC曲线之间。而ROC曲线下的面积,即为AUC!

这里的x和y分别对应TPR和FPR,也是ROC曲线的横纵坐标。
A U C = ∫ t = ∞ − ∞ y ( t ) d x ( t ) (15) \mathrm{AUC}=\int_{t=\infty}^{-\infty} y(t) d x(t) \tag{15} AUC=t=y(t)dx(t)(15)

参考:https://tracholar.github.io/machine-learning/2018/01/26/auc.html

KS Kolmogorov-Smirnov

KS值是在模型中用于区分预测正负样本分隔程度的评价指标,一般应用于金融风控领域。与ROC曲线相似,ROC是以FPR作为横坐标,TPR作为纵坐标,通过改变不同阈值,从而得到ROC曲线。ks曲线为TPR-FPR,ks曲线的最大值通常为ks值。可以理解TPR是收益,FPR是代价,ks值是收益最大。图中绿色线是TPR、蓝色线是FPR。

KS的计算步骤如下:

  1. 按照模型的结果对每个样本进行打分
  2. 所有样本按照评分排序,从小到大分为10组(或20组)
  3. 计算每个评分区间的好坏样本数。
  4. 计算每个评分区间的累计好样本数占总好账户数比率(good%)和累计坏样本数占总坏样本数比率(bad%)。
  5. 计算每个评分区间累计坏样本占比与累计好样本占比差的绝对值(累计bad%-累计good%),然后对这些绝对值取最大值即得此评分模型的K-S值。

CTR(Click-Through-Rate)

CTR即点击通过率,是互联网广告常用的术语,指网络广告(图片广告/文字广告/关键词广告/排名广告/视频广告等)的点击到达率,即该广告的实际点击次数(严格的来说,可以是到达目标页面的数量)除以广告的展现量(Show content).
c t r = 点击次数 展示量 (16) ctr=\frac{点击次数}{展示量} \tag{16} ctr=展示量点击次数 (16)

CVR (Conversion Rate)

CVR即转化率。是一个衡量CPA广告效果的指标,简言之就是用户点击广告到成为一个有效激活或者注册甚至付费用户的转化率.
c v r = 点击量 转化量 (17) cvr=\frac{点击量}{转化量} \tag{17} cvr=转化量点击量 (17)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/617161.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

[lesson26]类的静态成员函数

类的静态成员函数 静态成员函数 在C中可以定义静态成员函数 静态成员函数是类中特殊的成员函数静态成员函数属于整个类所有可以通过类名直接访问公有静态成员函数可以通过对象名访问公有静态成员函数 静态成员函数的定义 直接通过static关键字修饰成员函数 静态成员函数 vs…

Gradle 实战 - 命令行传递-ApiHug准备-工具篇-013

&#x1f917; ApiHug {Postman|Swagger|Api...} 快↑ 准√ 省↓ GitHub - apihug/apihug.com: All abou the Apihug apihug.com: 有爱&#xff0c;有温度&#xff0c;有质量&#xff0c;有信任ApiHug - API design Copilot - IntelliJ IDEs Plugin | Marketplace ApiHug …

让人迷糊的ThreadLocalMap,看清他的本质

ThreadLocalMap ThreadLocalMap是ThreadLocal的内部类&#xff0c;主要提供了数据存储和获取的API和存储真实数据的数据结构 我们怎么才能更好的理解这个数据机构呢&#xff0c;首先给出答案&#xff1a;其实我们被他的名字弄迷糊了&#xff0c;他存数据的结构其实本质上是一…

生产事故:线程管理不善诱发P0故障

背景 处于业务诉求&#xff0c;需要建立一个统一的调度平台&#xff0c;最终是基于 Dolphinscheduler 的 V1.3.6 版本去做二次开发。在平台调研建立时&#xff0c;这个版本是最新的版本 命运之轮开始转动 事故 表象 上班后业务部门反馈工作流阻塞&#xff0c;登录系统发现大…

java栈和队列

目录 1.栈的概念&#xff1a; 2.栈的一些常用的方法&#xff1a; ​编辑 3.栈的模拟实现&#xff1a; 栈的应用&#xff1a; 4.关于栈的练习 5.队列的概念&#xff1a; 6.队列的使用&#xff1a; 7.模拟队列 8.循环队列 9.双端队列&#xff1a; 10.面试题 1.栈的概念&…

【汇编】存储器

存储器 计算机存储器可分为内部存储器&#xff08;又称内存或主存&#xff09;和外部存储器&#xff0c;其中内存是CPU能直接寻址的储存空间&#xff0c;由半导体器件制成 存储单元的地址和内容 计算机存储信息的基本单位是一个二进制位&#xff0c;一位可存储一个二进制数&…

【鸿蒙开发】第二十一章 Media媒体服务(一)

1 简介 Media Kit&#xff08;媒体服务&#xff09;提供了AVPlayer和AVRecorder用于播放、录制音视频。 在Media Kit的开发指导中&#xff0c;将介绍各种涉及音频、视频播放或录制功能场景的开发方式&#xff0c;指导开发者如何使用系统提供的音视频API实现对应功能。比如使用…

funasr 麦克风实时流语音识别

参考: https://github.com/alibaba-damo-academy/FunASR chunk_size 是用于流式传输延迟的配置。[0,10,5] 表示实时显示的粒度为 1060=600 毫秒,并且预测的向前信息为 560=300 毫秒。每个推理输入为 600 毫秒(采样点为 16000*0.6=960),输出为相应的文本。对于最后一个语音…

C# dynamic 数据类型

在C#中&#xff0c;dynamic是一种数据类型&#xff0c;它允许在运行时推迟类型检查和绑定。使用dynamic类型&#xff0c;可以编写更具灵活性的代码&#xff0c;因为它允许在编译时不指定变量的类型&#xff0c;而是在运行时根据实际情况进行解析。 dynamic类型的变量可以存储任…

老板最怕你出这样的代码。。。

大家好&#xff0c; 这一个月时间&#xff0c;阿里巴巴、滴滴、腾讯都发生过应用线上故障的事情&#xff0c;很多同学说是降本增“笑”的后果然后圈内流传一个新想法&#xff0c;为了避免“开源节流” 的事情&#xff0c;工作中要写一些防御性的代码。 什么意思&#xff1f;就…

大模型(Large Models):探索人工智能领域的新边界

&#x1f31f;文章目录 &#x1f31f;大模型的定义与特点&#x1f31f;模型架构&#x1f31f;大模型的训练策略&#x1f31f;大模型的优化方法&#x1f31f;大模型的应用案例 随着人工智能技术的飞速发展&#xff0c;大模型&#xff08;Large Models&#xff09;成为了引领深度…

python基础——类【类的定义和使用、魔术方法】

&#x1f4dd;前言&#xff1a; python中的类&#xff0c;自我感觉在某种程度上和C语言的结构体是有共同之处的&#xff0c;如果有兴趣&#xff0c;可以先看看这篇文章&#xff1a;C语言——结构体类型&#xff08;一&#xff09;&#xff0c;先了解一下C语言中的结构体&#x…