机器学习之模型评估指标

分类模型

Accuracy - 准确率

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> A c c u r a c y = n c o r r e c t n t o t a l Accuracy = \frac{n_{correct}}{n_{total}} </math>Accuracy=ntotalncorrect

其中 <math xmlns="http://www.w3.org/1998/Math/MathML"> n c o r r e c t n_{correct} </math>ncorrect 为被正确分类的样本个数, <math xmlns="http://www.w3.org/1998/Math/MathML"> n t o t a l n_{total} </math>ntotal 为总体样本个数。

准确率是分类问题中最简单也是最直观的评价指标,但存在明显的缺陷。比如,当负样本占99%时,分类器把所有样本都预测为负样本也可以获得99%的准确 率。所以,当不同类别的样本比例非常不均衡时,占比大的类别往往成为影响准确率的最主要因素

做模型或做评估任务时,刚刚开始我们还是会简单的用Accuracy来做评估 ------ 因为样本不均衡的情况会比较少。

混淆矩阵 - 目前机器学习与大模型正在使用的评估指标

目前机器学习与大模型正在使用的评估指标

混淆矩阵是机器学习中总结分类模型预测结果的情形分析表 ,以矩阵形式将数据集中的记录按照真实的类别与分类模型预测的类别判断两个标准进行汇总。

True Positive(TP):真正类。正类被预测为正类。 False Negative(FN):假负类。正类被预测为负类。 False Positive(FP):假正类。负类被预测为正类。 True Negative(TN):真负类。负类被预测为负类。

术语:

Reference: 真实值

Prediction: 预测值

T: True

P: Positive

F: False

N: Negative

举例

Precision - 精准率

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> P r e c i s i o n = T P T P + F P Precision = \frac{TP}{TP+FP} </math>Precision=TP+FPTP

精准率,表示预测结果中,预测为正样本的样本中,正确预测的概率。

T、P、F、N 见混淆矩阵

预测为正样本里,有多少判断对的了

Recall - 召回率

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> R e c a l l = T P T P + F N Recall = \frac{TP}{TP+FN} </math>Recall=TP+FNTP

召回率,表示在原始样本的正样本中,被正确预测为正样本的概率。

原始数据的正样本中,有多少被判断对的了

Precision值和Recall值是既矛盾又统一的两个指标,为了提高Precision值,分类器需要尽量在"更有把握"时才把样本预测为正样本,但此时往往会因为过于保守而漏掉很多"没有把握"的正样本,导致Recall值降低。

F1

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> F 1 = f ∗ 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 F1 = \frac{f * Precision * Recall}{Precision * Recall} </math>F1=Precision∗Recallf∗Precision∗Recall

F1-score是Precision和Recall两者的综合,是一个综合性的评估指标。

Micro-F1:不区分类别,直接使用总体样本的准召计算f1 score。

Macro-F1:先计算出每一个类别的准召及其f1 score,然后通过求均值得到在整个样本上的f1 score。

数据均衡,两者均可;样本不均衡,相差很大,使用Macro-F1样本不均衡,相差不大,优先选择Micro-F1

举例

回归模型

MSE

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> M S E = 1 m ∑ i = 1 m ( y i − y i ^ ) 2 MSE = \frac{1}{m}\sum_{i=1}^m(y_i - \hat{y_i})^2 </math>MSE=m1i=1∑m(yi−yi^)2

RMSE

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> R M S E = 1 m ∑ i = 1 m ( y i − y i ^ ) 2 2 RMSE = \sqrt[2]{\frac{1}{m}\sum_{i=1}^m(y_i - \hat{y_i})^2} </math>RMSE=2m1i=1∑m(yi−yi^)2

均方根误差, <math xmlns="http://www.w3.org/1998/Math/MathML"> y i − y i ^ y_i - \hat{y_i} </math>yi−yi^为真实值-预测值。解决量纲不一致的问题。

MAE

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> M A E = 1 m ∑ i = 1 m ∣ ( y i − y i ^ ) ∣ MAE = \frac{1}{m}\sum_{i=1}^m|(y_i - \hat{y_i})| </math>MAE=m1i=1∑m∣(yi−yi^)∣

平均绝对识差, <math xmlns="http://www.w3.org/1998/Math/MathML"> y i − y i ^ y_i - \hat{y^i} </math>yi−yi^ 为{真实值-预测值}

RMSE 与 MAE 的量纲相同,但求出结果后我们会发现RMSE比MAE的要大一些。

这是因为RMSE是先对误差进行平方的累加后再开方,它其实是放大了较大误差之间的差距。

MAE反应的是真实误差。因此在衡量中使RMSE的值越小其意义越大,因为它的值能反映其最大误差也是比较小的。

R平方

<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> R 2 = 1 − ∑ i = 1 ( y i ^ − y i ) 2 ∑ i = 1 ( y i ‾ − y i ) 2 R^2 = 1-\frac{\sum_{i=1}(\hat{y_i}- {y_i})^2}{\sum_{i=1}(\overline{y_i} - y_i)^2} </math>R2=1−∑i=1(yi−yi)2∑i=1(yi^−yi)2

决定系数,分子部分表示真实值与预测值的平方差之和,类似于均方差 MSE;分母部分表示真实值与均值的平方差之和,类似于方差 Var。

根据 R2 的取值,来判断模型的好坏,其取值范围为[0,1]:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> R 2 越大,表示模型拟合效果越好。 R 2 反映的是大概的准确性,因为随着样本量的增加 R 2 必然增加,无法真正定量说明准确程度,只能大概定量。 R^2越大,表示模型拟合效果越好。R^2反映的是大概的准确性,因为随着样本量的增加R^2必然增加,无法真正定量说明准确程度,只能大概定量。 </math>R2越大,表示模型拟合效果越好。R2反映的是大概的准确性,因为随着样本量的增加R2必然增加,无法真正定量说明准确程度,只能大概定量。

GSB

通常用于两个模型之间的对比, 而非单个模型的评测:
<math xmlns="http://www.w3.org/1998/Math/MathML" display="block"> G S B = g o o d − b a d g o o d + s a m e + b a d GSB = \frac{good - bad}{good + same + bad} </math>GSB=good+same+badgood−bad

可以用GSB指标评估两个模型在某类数据中的性能差异。

相关推荐
哦豁灬40 分钟前
NCNN 学习(2)-Mat
深度学习·学习·ncnn
Bruce小鬼41 分钟前
最新版本TensorFlow训练模型TinyML部署到ESP32入门实操
人工智能·python·tensorflow
sp_fyf_20241 小时前
计算机人工智能前沿进展-大语言模型方向-2024-09-20
人工智能·搜索引擎·语言模型
kinlon.liu1 小时前
AI与自然语言处理(NLP):中秋诗词生成
人工智能·自然语言处理
正义的彬彬侠1 小时前
举例说明计算一个矩阵的秩的完整步骤
人工智能·机器学习·矩阵·回归
鸽芷咕1 小时前
【Python报错已解决】xlrd.biffh.XLRDError: Excel xlsx file; not supported
开发语言·python·机器学习·bug·excel
十有久诚2 小时前
E2VPT: An Effective and Efficient Approach for Visual Prompt Tuning
人工智能·深度学习·提示学习·视觉语言模型
卓_尔_不_凡2 小时前
Pytorch学习---基于经典网络架构ResNet训练花卉图像分类模型
人工智能·分类·数据挖掘
神奇夜光杯2 小时前
Python酷库之旅-第三方库Pandas(123)
开发语言·人工智能·python·excel·pandas·标准库及第三方库·学习与成长
SEU-WYL2 小时前
基于神经网络的光线追踪
人工智能·神经网络·计算机视觉