机器学习模型常用评价指标(Accuracy, Precision, Recall、F1-score、MSE、RMSE、MAE、R方)

本文详细介绍了机器学习模型的评价指标,包括Accuracy、Precision、Recall、F1-score在二分类和多分类问题中的应用,以及回归模型的MSE、RMSE和MAE。强调了在数据不平衡情况下准确度的局限性,并探讨了Macro、Weighted和Micro平均方法在多分类问题中的选择。同时,解释了R方(R Squared)作为回归模型的评价标准,帮助读者更好地理解和选择合适的评价指标。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

前言

众所周知,机器学习分类模型常用评价指标有Accuracy, Precision, Recall和F1-score,而回归模型最常用指标有MAE和RMSE。但是我们真正了解这些评价指标的意义吗?

在具体场景(如不均衡多分类)中到底应该以哪种指标为主要参考呢?多分类模型和二分类模型的评价指标有啥区别?多分类问题中,为什么Accuracy = micro precision = micro recall = micro F1-score? 什么时候用macro, weighted, micro precision/ recall/ F1-score?

二分类模型常见指标

  1. 准确度(accuracy):

accuracy= T P + T N T P + F P + T N + F N \frac{TP+TN}{TP+FP+TN+FN} TP+FP+TN+FNTP+TN

准确度是指分类正确的预测数与总预测数的比值,准确度越高,分类器越好。

但是准确度并不是一个好指标,因为一旦数据严重不均衡时,accuracy不起作用。比如我们看X光片,真实数据是:99%都是无病的,只有1%是有病的,假设一个分类器只要给它一张X光片,它就判定是无病的,那么它的准确率也有99%,显然这个指标意义不大。当数据异常不平衡时,Accuracy评估方法的缺陷尤为显著。

  1. 混淆矩阵

二分类问题中,样本共两种类别:Positive和Negative。当分类器预测结束,我们可以绘制出混淆矩阵(confusion matrix)。其中分类结果分为如下几种:

Actual Positive Actual Negative
Predicted Positive TP FP
Predicted Negative FN TN
  • True Positive (TP): 把正样本成功预测为正。
  • True Negative (TN):把负样本成功预测为负。
  • False Positive (FP):把负样本错误地预测为正。
  • False Negative (FN):把正样本错误的预测为负。

在二分类模型中,Accuracy(准确率)、Precision(精确率)、Recall(召回率)和F1 score的定义如下:

Accuracy= T P + T N T P + F P + T N + F N \frac{TP+TN}{TP+FP+TN+FN} TP+FP+TN+FNTP+TN

Precision= T P T P + F P \frac{TP}{TP+FP} TP+FPTP

Recall= T P T P + F N \frac{TP}{TP+FN} TP+FNTP

F1-score= 2 ∗ P r e c i s i o n ∗ R e c a l l P r e c i s i o n + R e c a l l \frac{2*Precision*Recall}{Precision+Recall} Precision+Recall2PrecisionRecall

其中,Precision着重评估在预测为Positive的所有数据中,真实Positive的数据到底占多少?Recall着重评估在所有的真实Positive数据中,到底有多少数据被成功预测为Positive?

举个例子,一个医院新开发了一套癌症AI诊断系统,想评估其性能好坏。我们把病人得了癌症定义为Positive,没得癌症定义为Negative。那么, 到底该用什么指标进行评估呢?

如果用Precision对系统进行评估,那么其回答的问题就是:

在诊断为癌症的一堆人中,到底有多少人真得了癌症?

如果用Recall对系统进行评估,那么其回答的问题就是:

在一堆得了癌症的病人中,到底有多少人能被成功检测出癌症?

如用Accuracy对系统进行评估,那么其回答的问题就是:

在一堆癌症病人和正常人中,有多少人被系统给出了正确诊断结果(患癌或没患癌)?

精准率和召回率之间是互相矛盾的,如果提高召回率,精准率就不可避免的下降,如果精准率提高,召回率就不可避免的下降。那什么时候注重Precision还是Recall?

在稳定TP的情况下,主要是更关注FP和FN的哪一个。以垃圾邮件屏蔽系统为例,垃圾邮件为Positive,正常邮件为Negative,False Positive是把正常邮件识别为垃圾邮件,这种情况是最应该避免的(你能容忍一封重要工作邮件直接进了垃圾箱,被不知不觉删除吗?)。我们宁可把垃圾邮件标记为正常邮件 (FN),也不能让正常邮件直接进垃圾箱 (FP)。在这里,垃圾邮件屏蔽系统的目标是:尽可能提高Precision值,哪怕牺牲一部分Recall。

F1 score是Precision和Recall两者的综合(调和平均数),主要用途来比较两个分类器的性能,取值范围为0到1,数值越大越好;

多分类模型常见指标

在多分类(大于两个类)问题中,假设我们要开发一个动物识别系统,来区分输入图片是猫,狗还是猪。给定分类器一堆动物图片,产生了如下结果混淆矩阵。

Alt
在混淆矩阵中,正确的分类样本(Actual label = Predicted label)分布在左上到右下的上对角线上。其中,Accuracy的定义为分类正确(对角线上)的样本数与总样本数的比值。Accuracy度量的是全局样本预测情况。而对于Precision和Recall而言,每个类都需要单独计算其Precision和Recall。

Alt

比如,对类别「猪」而言,其Precision和Recall分别为:

Precision= T P T P + F P \frac{TP}{TP+FP} TP+FPTP= 20 20 + 50 \frac{20}{20+50} 20+5020= 2 7 \frac{2}{7} 72

Recall= T P T P + F N \frac{TP}{TP+FN} TP+FNTP= 20 20 + 10 \frac{20}{20+10}

参考资源链接:[机器学习实验:模型评估与指标分析](https://wenku.youkuaiyun.com/doc/832ju77fjh?utm_source=wenku_answer2doc_content) 为了深入理解和应用模型评估法,特别是对于回归和分类问题,你可以参考《机器学习实验:模型评估与指标分析》这份实验文档。文档详细介绍了如何使用均误差(MSE)、最大绝对误差(MAE)和均根误差(RMSE)来评估回归模型的性能,同时也涵盖了分类问题中常见的评估指标,如错误率、精度、查全率、查准率和F1分数。 在Python中实现MSEMAERMSE的代码示例如下: ```python import numpy as np # 假设y是真实值,pred是预测值 def MSE(y, pred): return np.mean((y - pred)**2) def MAE(y, pred): return np.mean(np.abs(y - pred)) def RMSE(y, pred): return np.sqrt(MSE(y, pred)) ``` 对于分类问题,计算混淆矩阵和相关评估指标的代码示例如下: ```python from sklearn.metrics import confusion_matrix, accuracy_score, precision_score, recall_score, f1_score # 假设y是真实标签,y_pred是模型预测的标签 cm = confusion_matrix(y, y_pred) accuracy = accuracy_score(y, y_pred) precision = precision_score(y, y_pred) recall = recall_score(y, y_pred) f1 = f1_score(y, y_pred) ``` 通过这些代码,你可以计算出各个指标,并结合具体情况对模型进行评估。例如,高精度可能意味着模型在正类别上表现良好,但若数据集不均衡,查全率和查准率的考量可能更为重要。F1分数是二者的调和平均,特别适合用于处理类别不平衡的情况。掌握这些评估指标,将有助于你更准确地衡量和比较不同机器学习模型的性能。 参考资源链接:[机器学习实验:模型评估与指标分析](https://wenku.youkuaiyun.com/doc/832ju77fjh?utm_source=wenku_answer2doc_content)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值