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)

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

Android 车载应用开发概述

前言 介绍 Android 车载应用开发 文章目录 前言一、Android Automotive OS 概述二、Android Automotive OS 架构三、常见的车载应用1、系统应用1&#xff09;SystemUI是什么开发工作 2&#xff09;Launcher是什么开发工作 3&#xff09;Settings是什么开发工作 4&#xff09;多…

使用UDP实现TCP的功能,会带来什么好处?

比较孤陋寡闻&#xff0c;只知道QUIC TCPQUIC握手延迟TCP需要三次握手TLS握手三次握手TLS握手放在一起&#xff0c;实现0RTT头阻塞问题TCP丢失保文&#xff0c;会影响所有的应用数据包基于UDP封装传输层Stream&#xff0c;Stream内部保序&#xff0c;Stream之间不存在相互影响…

实时智能应答3D数字人搭建2

先看效果&#xff1a; 3d数字人讲黑洞 根据艾媒咨询数据&#xff0c;2021年&#xff0c;中国虚拟人核心产业规模达到62.2亿元&#xff0c;带动市场规模达到1074.9亿元&#xff1b;2025年&#xff0c;这一数据预计将达到480.6亿元与6402.7亿元&#xff0c;同比增长迅猛。数字人可…

C语言:指针详解(1)

目录 一、内存和地址 1.内存 2.究竟该如何理解编址 二、指针变量和地址 1.取地址操作符(&) 2.解引用操作符(*) 3.指针变量的大小 三、指针变量类型的意义 1.指针的解引用 2.指针-整数 3.void*指针 四、const修饰指针 1.const修饰变量 2.const修饰指针变量 五…

C语言 | Leetcode C语言题解之第19题删除链表的倒数第N个结点

题目&#xff1a; 题解&#xff1a; struct ListNode* removeNthFromEnd(struct ListNode* head, int n) {struct ListNode* dummy malloc(sizeof(struct ListNode));dummy->val 0, dummy->next head;struct ListNode* first head;struct ListNode* second dummy;f…

CSS核心样式-02-盒模型属性及扩展应用

目录 三、盒模型属性 常见盒模型区域 盒模型图 盒模型五大属性 1. 宽度 width 2. 高度 height 3. 内边距 padding 四值法 三值法 二值法 单值法 案例 4. 边框 border 按照属性值的类型划分为三个单一属性 ①线宽 border-width ②线型 border-style ③边框颜色 bo…

网页端HTML使用MQTTJs订阅RabbitMQ数据

最近在做一个公司的日志组件时有一个问题难住了我。今天问题终于解决了。由于在解决问题中&#xff0c;在网上也查了很多资料都没有一个完整的实例可以参考。所以本着无私分享的目的记录一下完整的解决过程和实例。 需求&#xff1a;做一个统一日志系统可以查看日志列表和一个可…

数据——关键生产要素

数据作为数字经济时代的关键生产要素&#xff0c;逐步融入生产生活各方面&#xff0c;深刻影响并重构着经济社会运行和社会治理&#xff0c;已成为影响未来发展的关键战略性资源。近年来&#xff0c;我国高度重视发展数字经济、数据要素及其市场化配置改革&#xff0c;发布了一…

Go——网络编程

一. 互联网协议介绍 网络基础——网络传输基本流程_网络传输过程-CSDN博客 应用层HTTP协议-CSDN博客 传输层UDP/TCP协议_udp报文提供的确认号用于接收方跟发送方确认-CSDN博客 网络层IP协议-CSDN博客 链路层以太网详解_以太网数据链路层-CSDN博客 二. Socket编程 Socket是…

vite+react+ts+scss 创建项目

npm create vitelatest输入项目名称选择react选择typescript swc WC 通过利用 Rust 编写的编译器&#xff0c;使用了更先进的优化技术&#xff0c;使得它在处理 TypeScript 代码时能够更快地进行转换和编译。特别是在大型项目中&#xff0c;SWC 相对于传统的 TypeScript 编译器…

Hive的分区与排序

一、Hive分区 1.引入&#xff1a; 在大数据中&#xff0c;最常见的一种思想就是分治&#xff0c;我们可以把大的文件切割划分成一个个的小的文件&#xff0c;这样每次操作一个个小的文件就会很容易了&#xff0c;同样的道理&#xff0c;在hive当中也是支持这种思想的&#xff…

error: src refspec master does not match any

文章目录 1 问题复现2 问题解决 1 问题复现 在把文件推送到远程仓库时&#xff0c;出现了如下错误。 错误原因&#xff1a;没有“master”分支。 2 问题解决 1&#xff0c;查看现有分支&#xff1b; (base) macmacbook DesignPatterns % git branch * main2&#xff0c;创…

Unity上接入手柄,手柄控制游戏物体移动

1、unity软件上安装system input 组件。菜单栏【window】-【Packag Manager】打开如下界面,查找Input System,并且安装。 2、安装成功后插入手柄到windows上,打开菜单栏上【window】--【Analysis】--【Input Debuger】 进入Input Debug界面,可以看到手柄设备能被Unity识别。…

刷代码随想录有感(31):删除字符串中所有相邻重复项

题干&#xff1a; 代码&#xff1a; class Solution { public:stack<char> st;string res "";string removeDuplicates(string s) {for(char i : s){if(st.empty() || st.top() ! i){st.push(i);}else{st.pop();}}while(!st.empty()){res st.top();st.pop()…

使用云服务器搭建CentOS操作系统

云服务器搭建CentOS操作系统 前言一、购买云服务器腾讯云阿里云华为云 二、使用 XShell 远程登陆到 Linux关于 Linux 桌面下载 XShell安装XShell查看 Linux 主机 ip使用 XShell 登陆主机 三、无法使用密码登陆的解决办法 前言 CentOS是一种基于Red Hat Enterprise Linux&#…

:app debug:armeabi-v7a failed to configure C/C++

报错信息 由于刚换电脑不久&#xff0c;新建native c工程时&#xff0c;出现报错如下&#xff1a; :app debug:armeabi-v7a failed to configure C/C null java.lang.NullPointerExceptionat com.android.build.gradle.tasks.CmakeQueryMetadataGenerator.getProcessBuilder(…

了解大语言模型的参数高效微调(Parameter-Effcient Fine-Tuning)

&#x1f349; CSDN 叶庭云&#xff1a;https://yetingyun.blog.csdn.net/ 大语言模型在众多应用领域实现了突破性的进步&#xff0c;显著提升了各种任务的完成度。然而&#xff0c;其庞大的规模也带来了高昂的计算成本。这些模型往往包含数十亿甚至上千亿参数&#xff0c;需要…

uniapp 卡片勾选

前言 公司的app项目使用的uniapp&#xff0c;项目里有一个可勾选的卡片功能&#xff0c;效果图如下&#xff1a; 找了一圈没找到什么太好的组件&#xff0c;于是就自己简单写了一个&#xff0c;记录一下。避免以后还会用到 代码 <template><view class"card-…

虚幻引擎启动报错记录

0x00007FFEF0C8917C (UnrealEditor-CoreUObject.dll)处(位于 UnrealEditor.exe 中)引发的异常: 0xC0000005: 写入位置 0x0000000000000030 时发生访问冲突。 解决办法&#xff1a;首先查看堆栈信息&#xff0c;我的项目启动是因为默认场景编译不过&#xff0c;进到编辑器配置文…

【Linux实践室】Linux高级用户管理实战指南:用户所属组变更操作详解

&#x1f308;个人主页&#xff1a;聆风吟_ &#x1f525;系列专栏&#xff1a;Linux实践室、网络奇遇记 &#x1f516;少年有梦不应止于心动&#xff0c;更要付诸行动。 文章目录 一. ⛳️任务描述二. ⛳️相关知识2.1 &#x1f514;Linux查看用户所属组2.1.1 &#x1f47b;使…