机器学习开始学了回归问题的评估函数,经典的有RMSE(Root Mean Square Error)、MSE(Mean Square Error)、MAE(Mean Absolute Error)、RMSLE(Root Mean Square Logarithmic Error)等等。

但是分类问题不是拿这些来评估的。面试的时候还被问到了,只知道回归问题的评估标准是真的尴尬。

本文框架参考自:https://towardsdatascience.com/the-5-classification-evaluation-metrics-you-must-know-aa97784ff226

1. 准确率(Accuracy Rate)、精确率(Precision Rate)、召回率(Recall Rate,我也不知道为啥要称为recall):

先说上图这个表格,左边是预测结果,上面是实际结果。

准确率(Accuracy Rate):

很好理解,就是你预测对的概率,绿色的部分除以四个加起来。

精确率(Precision Rate):

就是你猜“正(Positive)”中,猜对的概率

召回率(Recall Rate):

这是实际结果为“正(Positive)”中,你猜对的概率

2. F1-score:

参考的文章中说,F1-score反应分类模型的精确率和召回率(Precision、Recall)的平衡问题。

也就是:

从式子中可以看出当Precision和Recall两者之一很小的时候,整个式子的就很大,F1就接近0。

所以Precision和Recall的关系如图:

将1中的式子代入计算,得到:

从这式子可以看出,当TP足够大时,F1会趋向于1;

而随着FP、FN的数量逐渐增大,挤兑TP的数量使其变小,则F1会逐渐增大;

当FP或FN中的任何一个数量变得很大的时候,的值会迅速增大,使得F1趋向于0;

但只要FP+FN的值不变,其实F1-score都不会变化。

也就是说,在F1-score中,精确率和召回率的比重(weight)是相同的。

所以也引入了

来调整精确率和召回率的比重关系。

3. 对数损失(或称,二元交叉熵)Logarithmic Loss/Binary Crossentropy

这种评估方法针对的是,模型的预测结果是概率值,而不是直接输出预测值的情况,因为下面展示的损失函数会用到概率值p,这是直接输出预测值的模型没有的。

通常适用于评估逻辑回归或者神经网络模型的结果。

损失函数:

在这个函数中,y代表实际结果,p代表预测的y=1的概率,也就是

当y=1时,如果预测结果显示y=1的概率很低,也就是预测很离谱的时候,log(p)的值就会趋于负无穷,导致损失函数非常大;

当y=0时,同样,如果预测结果显示y=1的概率很高,也就是预测很不正确的时候,(1-y)log(1-p)的值也会趋于负无穷,损失函数极大。

下图是y=1的情况下,损失函数随着p值的变化:

Python调用代码:

from sklearn.metrics import log_loss
log_loss(y_true, y_pred, eps=1e-15)# where y_pred are probabilities and y_true are binary class labels

关于log_loss的用法,documentation讲的太少,很多地方感觉没解释清楚,以下是我搜一些文章看来的,不一定正确

documentation:https://scikit-learn.org/stable/modules/generated/sklearn.metrics.log_loss.html

这里的y_true是实际预测值,也就是上面损失函数的y;如果实际值是个categorical量,那么会按字母拼音排序分配为0或者1。

y_pred是预测结果为对应y的概率,跟上面损失函数的p不太一样。

也就是如果你是一个二元分类预测,y_true=1,那么对应的y_pred就是P(y=1);如果y_true=0,则y_pred=P(y=0),这里有所不同。

y_true和y_pred的宽度要求一致。

4. 分类数据的交叉熵

就是第三节的多分类的拓展版

损失函数:

就是多个实际值以及他们对应的概率的熵值累加。

用法一样,不多赘述。

5. ROC曲线和AUC(AUC指ROC曲线的面积)

这里不得不呕血推荐,statquest:https://www.youtube.com/watch?v=4jRBRDbJemM

看下来之后我用一句话总结ROC的核心就是,“宁可犯错,绝不放过”。

ROC,中文为受试者工作特征曲线。

在ROC的曲线图中,我们需要知道横坐标和纵坐标代表的意思。

横坐标:False Postive Rate,指的是实际结果为Negative负的样本中,你预测错误,即你预测为Positive正的比率。

其中

纵坐标:True Positive Rate,指的是实际结果为Postive正的样本中,你预测正确,即你你预测为Postive正的比率。

那讨论这两个量有什么意义呢?

假如你现在面对的一个预测问题是,病人被病毒感染的概率,那么从公共卫生安全的角度出发,我们所希望的是,即使误诊,也不要放过任何被感染个体的可能,防止出现大型的病毒传播事件。

在这里,就体现为:我们要尽可能地增大纵坐标的数值,确保阳性的患者被尽可能地一个不漏地诊断出来。

这个问题对应到我们训练模型的时候,就变成了阈值的取值问题。

比如一般情况下,我们在进行逻辑回归的时候,会将 P(y=1)>0.5的样本归类为类别1,反之将 P(y=1)<0.5的样本归类为类别0。

那么面对这个病毒感染问题的时候,我们宁可将0.5减少至比如0.1。即当这个样本有10%的机会感染的时候,我们也要把他归类为感染。

在这种情况下,

纵坐标的值会非常理想!但随着,横坐标的值,也就是原本没有被感染的人被误诊为感染的概率也可能会提升。

于是我们给横坐标与纵坐标的关系曲线,他是根据逐渐变化分类阈值而给出的曲线。

这就是ROC曲线

(说明: 根据训练集绘制ROC曲线的时候,将所有样本P(y=1)的概率排序后,按顺序选取他们的概率作为阈值,即可得出新的横坐标值和纵坐标值,得到和样本数一样多的点后,连成曲线,就得到了我们在实际训练中的ROC曲线。也就是说,ROC曲线不是又函数绘制出来的,而是由一个个点串连成的。)

那么根据ROC曲线,你就可以找到最合适的点,即找到分类模型最理想的阈值。

AUC,Area Under Curve,翻译成中文就是“曲线下的面积”。

这就没什么好理解的,它就是一个评估ROC曲线好坏的方式。

比如你用逻辑回归的时候,可以得到一条ROC曲线;你用神经网络模型,会得到另一条ROC曲线。

而ROC曲线的面积越大,通常说明这个模型对于这种”宁错不放“的策略来说,是最好的。

分类问题的评估指标(Evaluation for Classifier)相关推荐

  1. auuc 评估指标_分类之性能评估指标

    本文主要介绍几种常用的用于分类的性能评估指标,同时介绍如何绘制ROC曲线以及计算AUC值的便捷方法.最后再附上一个绘制ROC曲线和计算AUC的Python源码实现. Precision和Recall ...

  2. 深度学习分类任务常用评估指标

    摘要:这篇文章主要向大家介绍深度学习分类任务评价指标,主要内容包括基础应用.实用技巧.原理机制等方面,希望对大家有所帮助. 本文分享自华为云社区<深度学习分类任务常用评估指标>,原文作者: ...

  3. 不平衡多分类问题模型评估指标探讨与sklearn.metrics实践

    我们在用机器学习.深度学习建模.训练模型过程中,需要对我们模型进行评估.评价,并依据评估结果决策下一步工作策略,常用的评估指标有准确率.精准率.召回率.F1分数.ROC.AUC.MAE.MSE等等,本 ...

  4. 二分类最优阈值确定_分类问题的评估指标一览

    前言 最近分类问题搞的有点多,但对一些指标依旧有模糊的地方(虽然做了笔记), 事实证明, 笔记笔记,没有进到脑子里呀. 因此,我想着肯定有跟我一样半生半熟的小伙伴在分类指标这块依旧有迷惑,毕竟常用的几 ...

  5. 回归和分类模型性能评估指标MSE,MAE,PR,ROC,AUC

    文章目录 0. 模型评估是什么,为什么 1. 不同类型问题的评估指标 1.1 回归问题 1.2 分类问题 1.2.1 准确率和错误率 1.2.2 精确率和召回率 1.2.3 PR曲线图 1.2.4 F ...

  6. 深度学习分类任务常用评估指标——总结(重点)

    一.分类模型指标 1 准确率和错误率(该指标评价的前提样本分布平衡) 准确率和错误率既可用于二分类也可用于多分类: 下述公式是准确率.错误率针对二分类情况时候的计算公式 1.1 准确率(该指标评价的前 ...

  7. 一文看懂分类模型的评估指标:准确率、精准率、召回率、F1等

    2019-11-21 21:59:23 机器学习模型需要有量化的评估指标来评估哪些模型的效果更好. 本文将用通俗易懂的方式讲解分类问题的混淆矩阵和各种评估指标的计算公式.将要给大家介绍的评估指标有:准 ...

  8. 分类模型的评估指标(2)---ROC曲线与AUC简介

    首先,我们需要了解一下,什么是ROC曲线? ROC曲线,即受试者工作特征曲线(Receiver Operating Characteristic curve,简称ROC曲线,是根据一系列不同的二分类方 ...

  9. [机器学习] 二分类模型评估指标---精确率Precision、召回率Recall、ROC|AUC

    一 为什么要评估模型? 一句话,想找到最有效的模型.模型的应用是循环迭代的过程,只有通过持续调整和调优才能适应在线数据和业务目标. 选定模型时一开始都是假设数据的分布是一定的,然而数据的分布会随着时间 ...

最新文章

  1. 在多个游戏视图间切换环境准备
  2. 系统地学学喝酒的技巧
  3. 如何节省1T图片带宽?解密极致图像压缩!
  4. TFS中的迭代(五)
  5. C++实现各种选择排序(简单选择排序,堆排序)
  6. AliOS Things声源定位应用演示
  7. 金蝶云系统服务器,金蝶系统云服务器已离线
  8. SSM框架之多数据源配置
  9. amd显卡更新最新驱动鼠标顿卡的解决方法
  10. Prometheus is an open source monitoring
  11. 关于微信中的localStorage及使用cookie的解决方案
  12. google控制台使用
  13. [0 to 0.5]从零开始学习Android动画知识(上)
  14. 自动检测删除微信好友:学会这些方法,别再花冤枉钱!
  15. 谷歌地球 hosts文件_NO—谷歌地球===YESgt;gt;GoogleEarth
  16. 【更新】Excel控件Spire.XLS for .NET V7.12.90发布 | 支持向工作表添加形状
  17. python使用多线程爬取
  18. 英语学习方法:我是怎么从高考英语115考到托福97的
  19. matplotlib系列-plt.axis
  20. MyEclipse+Tomcat+Java+MySQL实现企业员工信息管理系统

热门文章

  1. 图解深度学习(图灵出品)
  2. jwt 私钥_JSON Web Token (JWT)生成Token及解密实战。
  3. opengl版本发展史及各种概念的厘清
  4. 使用相机暗箱公式和透镜方程估计人脸距离
  5. 非对称卷积增强CNN特征拟合
  6. GoogleTest测试框架搭建方法
  7. 2021-7-20 Linux服务器终端terminals关不掉怎么办???
  8. int main(int argc,char *argv[]),主函数的参数问题
  9. centos7 选定默认启动内核,及删除无用内核
  10. 面向对象和基于对象的区别