机器学习中的各种评价指标

2024-08-31 06:32
文章标签 评价 学习 机器 指标

本文主要是介绍机器学习中的各种评价指标,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

1 分类

分类器评价指标主要有:

1,Accuracy
2,Precision 
3,Recall 
4,F1 score 
5,ROC 曲线
6,AUC
7,PR 曲线

8,Log损失

混淆矩阵

混淆矩阵是监督学习中的一种可视化工具,主要用于比较分类结果和实例的真实信息。矩阵中的每一行代表实例的预测类别,每一列代表实例的真实类别。


真正(True Positive , TP):被模型预测为正的正样本。
假正(False Positive , FP):被模型预测为正的负样本。
假负(False Negative , FN):被模型预测为负的正样本。
真负(True Negative , TN):被模型预测为负的负样本。

真正率(True Positive Rate,TPR):TPR=TP/(TP+FN),即被预测为正的正样本数 /正样本实际数。
假正率(False Positive Rate,FPR) :FPR=FP/(FP+TN),即被预测为正的负样本数 /负样本实际数。
假负率(False Negative Rate,FNR) :FNR=FN/(TP+FN),即被预测为负的正样本数 /正样本实际数。
真负率(True Negative Rate,TNR):TNR=TN/(TN+FP),即被预测为负的负样本数 /负样本实际数

准确率(Accuracy)

准确率是最常用的分类性能指标。
Accuracy = (TP+TN)/(TP+FN+FP+TN),即正确预测的正反例数 /总数

精确率(Precision)

精确率容易和准确率被混为一谈。其实,精确率只是针对预测正确的正样本而不是所有预测正确的样本。表现为预测出是正的里面有多少真正是正的。可理解为查准率。
Precision = TP/(TP+FP),即正确预测的正例数 /预测正例总数

召回率(Recall)

召回率表现出在实际正样本中,分类器能预测出多少。与真正率相等,可理解为查全率。
Recall = TP/(TP+FN),即正确预测的正例数 /实际正例总数

F1 score

F值是精确率和召回率的调和值,更接近于两个数较小的那个,所以精确率和召回率接近时,F值最大。很多推荐系统的评测指标就是用F值的。
2/F1 = 1/Precision + 1/Recall

ROC曲线

逻辑回归里面,对于正负例的界定,通常会设一个阈值,大于阈值的为正类,小于阈值为负类。如果我们减小这个阀值,更多的样本会被识别为正类,提高正类的识别率,但同时也会使得更多的负类被错误识别为正类。为了直观表示这一现象,引入ROC。根据分类结果计算得到ROC空间中相应的点,连接这些点就形成ROC curve,横坐标为False Positive Rate(FPR假正率),纵坐标为True Positive Rate(TPR真正率)。一般情况下,这个曲线都应该处于(0,0)和(1,1)连线的上方,如图:

ROC曲线中的四个点和一条线:

点(0,1):即FPR=0, TPR=1,意味着FN=0且FP=0,将所有的样本都正确分类。
点(1,0):即FPR=1,TPR=0,最差分类器,避开了所有正确答案。
点(0,0):即FPR=TPR=0,FP=TP=0,分类器把每个实例都预测为负类。
点(1,1):分类器把每个实例都预测为正类。
总之:ROC曲线越接近左上角,该分类器的性能越好。而且一般来说,如果ROC是光滑的,那么基本可以判断没有太大的

AUC

AUC(Area Under Curve)被定义为ROC曲线下的面积(ROC的积分),通常大于0.5小于1。随机挑选一个正样本以及一个负样本,分类器判定正样本的值高于负样本的概率就是 AUC 值。AUC值(面积)越大的分类器,性能越好,如图:

PR曲线

PR曲线的横坐标是精确率P,纵坐标是召回率R。评价标准和ROC一样,先看平滑不平滑(蓝线明显好些)。一般来说,在同一测试集,上面的比下面的好(绿线比红线好)。当P和R的值接近时,F1值最大,此时画连接(0,0)和(1,1)的线,线和PRC重合的地方的F1是这条线最大的F1(光滑的情况下),此时的F1对于PRC就好像AUC对于ROC一样。一个数字比一条线更方便调型。

有时候模型没有单纯的谁比谁好(比如图二的蓝线和青线),所以选择模型还是要结合具体的使用场景。下面是两个场景:
1,地震的预测 对于地震的预测,我们希望的是RECALL非常高,也就是说每次地震我们都希望预测出来。这个时候我们可以牺牲PRECISION。情愿发出1000次警报,把10次地震都预测正确了,也不要预测100次对了8次漏了两次。
2,嫌疑人定罪 基于不错怪一个好人的原则,对于嫌疑人的定罪我们希望是非常准确的。即时有时候放过了一些罪犯(recall低),但也是值得的。

对于分类器来说,本质上是给一个概率,此时,我们再选择一个CUTOFF点(阀值),高于这个点的判正,低于的判负。那么这个点的选择就需要结合你的具体场景去选择。反过来,场景会决定训练模型时的标准,比如第一个场景中,我们就只看RECALL=99.9999%(地震全中)时的PRECISION,其他指标就变得没有了意义。

Log损失

Log loss,又被称为 logistic regression loss(logistic 回归损失)或者 cross-entropy loss(交叉熵损失) 定义在 probability estimates (概率估计)。它通常用于 (multinomial) logistic regression ((多项式)logistic 回归)和 neural networks (神经网络)以及 expectation-maximization (期望最大化)的一些变体中,并且可用于评估分类器的 probability outputs (概率输出)

对于具有真实标签 y \in \{0,1\} 的 binary classification (二分类)和 probability estimate (概率估计) p = \operatorname{Pr}(y = 1), 每个样本的 log loss 是给定的分类器的 negative log-likelihood 真正的标签:

L_{\log}(y, p) = -\log \operatorname{Pr}(y|p) = -(y \log (p) + (1 - y) \log (1 - p))

这扩展到 multiclass case (多类案例)如下。 让一组样本的真实标签被编码为 1-of-K binary indicator matrix Y, 即 如果样本 i 具有取自一组 K 个标签的标签 k ,则 y_{i,k} = 1 。令 P 为 matrix of probability estimates (概率估计矩阵), p_{i,k} = \operatorname{Pr}(t_{i,k} = 1) 。那么整套的 log loss 就是

L_{\log}(Y, P) = -\log \operatorname{Pr}(Y|P) = - \frac{1}{N} \sum_{i=0}^{N-1} \sum_{k=0}^{K-1} y_{i,k} \log p_{i,k}

2 回归

在回归学习任务中,我们也有一些评估指标,一起来看看吧!

平均绝对误差

平均绝对误差(Mean Absolute Error,MAE)公式为:

其中,N为样本数,为第i个样本的真实值,为第i个样本的预测值。

均方误差

均方误差(Mean Squared Error,MSE)公式为:

平均绝对百分误差

平均绝对百分误差(Mean Absolute Percentage Error,MAPE)公式为:

MAPE通过计算绝对误差百分比来表示预测效果,其取值越小越好。如果MAPE=10,这表明预测平均偏离真实值10%。

由于MAPE计算与量纲无关,因此在特定场景下不同问题具有一定可比性。不过MAPE的缺点也比较明显,在  yi=0处无定义。另外需要注意的是,MAPE对负值误差的惩罚大于正值误差,比如预测一个酒店消费是200元,真实值是150元的会比真实值是250的MAPE大。

均方根误差

均方根误差(Root Mean Squared Error)的公式为:

RMSE代表的是预测值和真实值差值的样本标准差。和MAE相比,RMSE对大误差样本有更大的惩罚。不过RMSE有一个缺点就是对离群点敏感,这样会导致RMSE结果非常大。

基于RMSE也有一个常用的变种评估指标叫均方根对数误差(Root Mean Squared Logarithmic Error,RMSLE),其公式为:

RMSLE对预测值偏小的样本惩罚比预测值偏大的样本惩罚更大,比如一个酒店消费均价是200元,预测成150元的惩罚会比预测成250的大。

R2

R2(R-Square)的公式为:

R2用于度量因变量的变异中可由自变量解释部分所占的比例,一般取值范围是 0~1,R2越接近1,表明回归平方和占总平方和的比例越大,回归线与各观测点越接近,用x的变化来解释y值变差的部分就越多,回归的拟合程度就越好。
 

3 聚类

当没有给定标签时,可以有这几种评价指标

Compactness(紧密性)(CP)

      CP计算 每一个类  各点到聚类中心的平均距离

      CP越低意味着类内聚类距离越近

      缺点:没有考虑类间效果

Separation(间隔性)(SP)

      SP计算 各聚类中心两两之间平均距离

      SP越高意味类间聚类距离越远

      缺点:没有考虑类内效果

Davies-Bouldin Index(戴维森堡丁指数)(分类适确性指标)(DB)(DBI)

      DB计算 任意两类别的类内距离平均距离(CP)之和除以两聚类中心距离 求最大值

      DB越小意味着类内距离越小 同时类间距离越大 

      缺点:因使用欧式距离 所以对于环状分布  聚类评测很差

Dunn Validity Index (邓恩指数)(DVI)

      DVI计算 任意两个簇元素的最短距离(类间)除以任意簇中的最大距离(类内)

      DVI越大意味着类间距离越大 同时类内距离越小

      缺点:对离散点的聚类测评很高、对环状分布测评效果差 

 

在给定标签的情况下有如下几种分类效果

Cluster Accuracy (准确性)(CA)

      CA计算 聚类正确的百分比

      CA越大证明聚类效果越好

Rand index(兰德指数)(RI) 、Adjusted Rand index(调整兰德指数)(ARI)

其中C表示实际类别信息,K表示聚类结果,a表示在C与K中都是同类别的元素对数,b表示在C与K中都是不同类别的元素对数

      其中表示数据集中可以组成的对数,RI取值范围为[0,1],值越大意味着聚类结果与真实情况越吻合。

      RI越大表示聚类效果准确性越高 同时每个类内的纯度越高

      为了实现“在聚类结果随机产生的情况下,指标应该接近零”,调整兰德系数(Adjusted rand index)被提出,它具有更高的区分度:

ARI取值范围为[−1,1],值越大意味着聚类结果与真实情况越吻合。从广义的角度来讲,ARI衡量的是两个数据分布的吻合程度。

Normalized Mutual Information (标准互信息)(NMI)、Mutual Information(互信息)(MI)、

互信息(Mutual Information)是用来衡量两个数据分布的吻合程度。也是一有用的信息度量,它是指两个事件集合之间的相关性。
用互信息的方法,在某个类别C中的出现概率高,而在其它类别中的出现概率低的词条T,将获得较高的词条和类别互信息,也就可能被选取为类别C的特征。

标准化互聚类信息都是用熵做分母将MI值调整到0与1之间,一个比较多见的实现是下面所示:

 

4 计算机视觉常用指标

计算机视觉中大多数还是分类和回归问题,都可以使用以上的指,不过有下面2个指标可以看下

mAP

mAP即是把每个类别的AP都单独拿出来,然后计算所有类别AP的平均值,代表着对检测到的目标平均精度的一个综合度量

具体mAP的计算可以参考MAP)在计算机视觉中的计算和应用

IOU

在目标识别问题中常用到IOU来评估,IOU用来衡量预测的物体框和真实框的重合程度,即:

蓝色的框是:GroundTruth
黄色的框是:DetectionResult
绿色的框是:DetectionResult ⋂GroundTruth
红色的框是:DetectionResult ⋃GroundTruth

即两个框的交并比,评价一个算法的时候,一种常见的方法是先设置一个IOU的阈值,只要算法找到的IOU大于这个阈值,就是一个有效的检测,把记过拿出来计算mAP作为最终的评价指标。

 

参考资料

1、机器学习分类器模型评价指标

2、机器学习评价指标

3、聚类算法评价指标

4、15.评价指标

5、mAP在计算机视觉中的应用

6、计算机视觉相关的评价指标

这篇关于机器学习中的各种评价指标的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1123150

相关文章

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

Ilya-AI分享的他在OpenAI学习到的15个提示工程技巧

Ilya(不是本人,claude AI)在社交媒体上分享了他在OpenAI学习到的15个Prompt撰写技巧。 以下是详细的内容: 提示精确化:在编写提示时,力求表达清晰准确。清楚地阐述任务需求和概念定义至关重要。例:不用"分析文本",而用"判断这段话的情感倾向:积极、消极还是中性"。 快速迭代:善于快速连续调整提示。熟练的提示工程师能够灵活地进行多轮优化。例:从"总结文章"到"用

【前端学习】AntV G6-08 深入图形与图形分组、自定义节点、节点动画(下)

【课程链接】 AntV G6:深入图形与图形分组、自定义节点、节点动画(下)_哔哩哔哩_bilibili 本章十吾老师讲解了一个复杂的自定义节点中,应该怎样去计算和绘制图形,如何给一个图形制作不间断的动画,以及在鼠标事件之后产生动画。(有点难,需要好好理解) <!DOCTYPE html><html><head><meta charset="UTF-8"><title>06

学习hash总结

2014/1/29/   最近刚开始学hash,名字很陌生,但是hash的思想却很熟悉,以前早就做过此类的题,但是不知道这就是hash思想而已,说白了hash就是一个映射,往往灵活利用数组的下标来实现算法,hash的作用:1、判重;2、统计次数;

零基础学习Redis(10) -- zset类型命令使用

zset是有序集合,内部除了存储元素外,还会存储一个score,存储在zset中的元素会按照score的大小升序排列,不同元素的score可以重复,score相同的元素会按照元素的字典序排列。 1. zset常用命令 1.1 zadd  zadd key [NX | XX] [GT | LT]   [CH] [INCR] score member [score member ...]

【机器学习】高斯过程的基本概念和应用领域以及在python中的实例

引言 高斯过程(Gaussian Process,简称GP)是一种概率模型,用于描述一组随机变量的联合概率分布,其中任何一个有限维度的子集都具有高斯分布 文章目录 引言一、高斯过程1.1 基本定义1.1.1 随机过程1.1.2 高斯分布 1.2 高斯过程的特性1.2.1 联合高斯性1.2.2 均值函数1.2.3 协方差函数(或核函数) 1.3 核函数1.4 高斯过程回归(Gauss

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

线性代数|机器学习-P36在图中找聚类

文章目录 1. 常见图结构2. 谱聚类 感觉后面几节课的内容跨越太大,需要补充太多的知识点,教授讲得内容跨越较大,一般一节课的内容是书本上的一章节内容,所以看视频比较吃力,需要先预习课本内容后才能够很好的理解教授讲解的知识点。 1. 常见图结构 假设我们有如下图结构: Adjacency Matrix:行和列表示的是节点的位置,A[i,j]表示的第 i 个节点和第 j 个

Node.js学习记录(二)

目录 一、express 1、初识express 2、安装express 3、创建并启动web服务器 4、监听 GET&POST 请求、响应内容给客户端 5、获取URL中携带的查询参数 6、获取URL中动态参数 7、静态资源托管 二、工具nodemon 三、express路由 1、express中路由 2、路由的匹配 3、路由模块化 4、路由模块添加前缀 四、中间件