专业的编程技术博客社区

网站首页 > 博客文章 正文

机器学习的常见指标(机器学习性能指标)

baijin 2024-10-29 13:04:36 博客文章 9 ℃ 0 评论


开篇:最近回顾了系列的算法学习资料,整理了算法的学习流程,从问题出发,怎么用算法

解决实际业务中的 case。当接到需求时,首先需要深入了解需求场景,将需求转换为算法可以解决的问题,我们大部

分遇到的是分类和回归的场景。需要我们深入理解问题,收集足够多的数据,从不同的纬度

分析,对该问题完成建模。对于需求场景中定义成问题,完成问题的建模,这是最重要的部

分。接下来都是一些套路的流程,对数据进行特征抽取,不同维度分析数据等特征工程,根

据模型复杂度、数据的稀疏、线性与非线性等筛选出适合的模型。在此基础上进一步提高效

果的模型融合等等(后续慢慢会讲到)。



首先我们需要了解怎么评估建模的好坏。根据问题场景的不同,定义不同的评价指标,用来

评价建模的好坏的程度。这个评估指标,一般作为模型的评估,真正线上的情况要根据不同

场景的业务指标来衡量。

一、分类指标

1、准确率通俗理解就是对于预测的所有数据,预测正确的数据占全部预测数据的比例。



如图中是模型对数据进行的预测,左右两个矩形表示正负样本集(正样本简称 P 负样本简称N),左侧红色半圆 true positives 表示模型正确预测为正样本的数据简称 TP,剩余部分是 falsenegatives,表示样本的真实标签是正样本,但是模型预测为负样本的数据,简称 FN,右侧红色半圆部分 false positives 表示数据的真实标签是负样本,但是模型预测为正样本的数据,简称 FP,剩余部分 true negatives 表示真实是负样本,模型预测也是负样本,简称 TN,TN+TP表示模型预测对的部分,包含了对正样本和负样本的预测,FN+FP 表示模型预测错误的部分,包含了对正样本和负样本的预测。

对于一般的二分类问题,正负样本均衡,一般可以用准确率进行衡量。准确率可以覆盖到所

有可预测到的数据,覆盖了 TP、TN、FP、FN(样本总数)。需要照顾到所有情况数据的指标,样本均衡,可以使用准确率,计算公式如下:

2、召回率与精确率



真实场景中往往数据是不均衡的,如果用准确率很难衡量出模型的好坏程度。我们考虑使用

召回率与精度。计算公式如下:



精确率和召回率都是越高越好,但是实际中往往两者是相矛盾的,精确率高时,召回率低,

召回率高时,精确率低。所以要根据自己的实际业务选择哪个指标更加重要,如何将两个指

标整合在一起呢?F1 score



也可以对不同指标进行加权,综合查看结果指标。

3、ROC 与 AUCROC 是以 FPR 为横坐标,以 TPR 为纵坐标的曲线图。以样本的预测概率进行排序,以每条样本的预测概率为阈值,计算对应的 TPR 与 FPR。



Roc 曲线越靠近左上角性能越好,左上角坐标(1,0)表示完美分类器,FPR=0,TPR=1。(0,0)点,FPR=TPR=0,所有的点都预测为了负值。(1,1)点,所有的点都预测为了正值。(1,0)点,FPR=1,TPR=1,即 FP=1,TP=0.负样本都预测为正值,正样本都预测为了负值。 最差的分类器。具体的可以通过计算公式推导。

AUC 表示 roc 曲线下方的面积,取值越大说明模型越有可能将正样本排在负样本的前面。因此 AUC 可以作为样本排序的指标,计算公式如下:



|p|表示正样本。|N|表示负样本。 rank_{i} 表示第 i 个正样本的排序序号。排序根据概率得分从小到大排。

4、交叉熵损失



这是分类问题中的常见损失,同样在分类中,交叉熵损失是越小越好的。与 AUC不同 对于排序不敏感

二、回归指标:

1、绝对值误差MAE 能够很好的刻画偏差,其实是对数据中值进行拟合,但是一些模型要求具有二阶导数的如 XGBoost,所以不能用 MAE 所为损失函数。计算公式如下:



2、绝对值百分比误差



保证 y_{i} 不等于 0,是对 MAE 的一种改进。

3、均方根误差



与 MAE 相比,RMSE 对大误差的样本有更大的惩罚,对离群点敏感。不如 MAE 健壮。RMSE是对数据均值的拟合。


三、排序指标

1、平均准确率均值 MAP先一次排序的平均准确率,再计算总体的平均准确率。



假设有两个主题,主题 1 有 4 个相关网页,主题 2 有 5 个相关网页。某系统对于主题 1 检索出 4 个相关网页,其 rank 分别为 1, 2, 4, 7;对于主题 2 检索出 3 个相关网页,其 rank 分别为 1,3,5。对于主题 1,平均精度均值为(1/1+2/2+3/4+4/7)/4=0.83。对于主题 2,平均精度均值为(1/1+2/3+3/5+0+0)/5=0.45。则 mAP= (0.83+0.45)/2=0.64。

2、NDCG累计增益(CG)



rel _{i}代表 i 位置的相关度缺点:假设搜索"篮球"结果,最理想的结果是:B1、B2、 B3。而出现的结果是 B3、B1、B2 的话,CG 的值是没有变化的,因此需要下面的 DCG。折损累计增益(DCG)为了让排名越靠前的结果越能影响最后的结果



归一化折损累计增益(NDCG)DCG 是一个累加的值,没法针对两个不同的搜索结果进行比较,因此需要归一化处理,这里是处以 IDCG。IDCG为理想情况下最大的 DCG 值。



实际的例子

假设搜索回来的 5 个结果,其相关性分数分别是 3、2、3、0、1、2那么 CG = 3+2+3+0+1+2可以看到只是对相关的分数进行了一个关联的打分,并没有召回的所在位置对排序结果

评分对影响。而我们看 DCG:



所以 DCG = 3+1.26+1.5+0+0.38+0.71 = 6.86接下来我们归一化,归一化需要先结算 IDCG,假如我们实际召回了 8 个物品,除了上

面的 6 个,还有两个结果,假设第 7 个相关性为 3,第 8 个相关性为 0。那么在理想情况下的相关性分数排序应该是:3、3、3、2、2、1、0、0。计算 IDCG@6:



所以 IDCG = 3+1.89+1.5+0.86+0.77+0.35 = 8.37最终 NDCG@6 = 6.86/8.37 = 81.96%

四、样本选择

从海量的数据中识别和选择相关性高的数据作为机器学习的输入。怎么选择样本数据尤为重

要。对数据进行去噪处理,进行采样,选择合适的数据集。

数据去噪主要去掉不可能的值,空值等,但是一些模型是可以处理空值的如 xgboost。采样尽量保持采样的期望与真实数据的期望一致,尽量保持值的分布特点。主要有上采样、

下采样、随机抽取、分层抽样、整群采样等

对于离线的验证可以进行交叉验证:1、留出法 2、k折交叉验证 3、自助法

Tags:

本文暂时没有评论,来添加一个吧(●'◡'●)

欢迎 发表评论:

最近发表
标签列表