Binary classification - 聊聊评价指标的那些事儿【实战篇】

分类问题就像披着羊皮的狼,看起来天真无害用起来天雷滚滚。比如在建模前你思考过下面的问题么?

  • 你的分类模型输出的概率只是用来做样本间的相对排序,还是概率本身?
  • 你的训练数据本身分布如何是否存在Imbalanced Sample?

要是您都想到了拜拜?。要是有1各您感兴趣的问题,那就接着往下看吧。本来是想先回顾一下各个分类问题中可能用到的metric,但是又觉得读的人可能觉得无聊,就分成了两章。

问题1 Rank or Probability?

分类问题可以根据对输出形式的要求分成两类

  1. 一种我们只关心排序。比如电商场景下,用户是否会回购某商品,我们更关心用户回购商品A的概率是否高于用户回购商品B的概率,然后把回购概率更高的商品放在推荐列表前面。这时分类问题其实是用来排序的。–样本间的相对排序比较比绝对概率更重要
  2. 另一种我们关心概率。比如现在大家都在谈增长,我们想知道一个用户明天在app活跃的概率,只知道用户A比用户B活跃的概率高并不够,我们需要明确知道用户A活跃的概率,究竟是90%还是50%,这样才能对高/低于特定概率的用户进行一定(促活/唤醒)操作。这时分类问题是对真实概率的估计 –样本的绝对概率需要接近真实概率,并且天极稳定

有人会问,上述两种需求究竟对解决一个二分类问题有什么影响? 答案是损失函数/评价指标

让我们来看一个直观的例子,下图我们尝试用LightGBM解决一个二分类问题,我们选择的拟合指标是最大化AUC。

X轴是预测概率,Y轴是真实概率,蓝线是LGB的预测结果,绿线对应真实概率=预测概率。为什么模型的AUC高达98.93%(这里还有ImbalancedSample的影响,让我们先忽略这一点),但是预测概率和真实概率却差到了姥姥家。

让我们对预测概率再做一层处理,黄线可以简单理解为我们对LGB的预测结果做了一层映射 (\hat{p} \to f(\hat{p})),这时校准后的预测概率和真实概率基本一致了。但是有趣的是校准后的预测概率AUC = 98.94%和原始预测基本没差别?!

img

**Duang Duang Duang!敲黑板!AUC是对相对概率排序的检验!**其实只要用心(我学AUC的时候一定没用心>_<)看一下AUC的计算方式就会发现,AUC只关心给定各个阈值,把样本按照预测概率分成0/1,并计算正负样本预测的准确率。

举个最夏天的例子,两个瓜一个甜一个不甜,我们训练一个西瓜模型来预测它们甜(1)/不甜(0)。

模型1: 甜的瓜预测概率是0.8,不甜的瓜预测概率是0.1,

模型2: 甜的瓜预测概率是0.51,不甜的瓜预测概率是0.49

两个模型的AUC是相同的,因为它们都完美对两个瓜进行了分类。

所以当使用最大化AUC作为损失函数时,当正负样本的预测准确率不再提高,模型就会停止学习。这时模型的预测概率并不是对真实概率的拟合。那如何才能得到对真实概率的预测? 答案是logloss/cros-entropy

[ \begin{align} L &= \sum_{i=1}^N y_i * log(p_i) + (1-y_i) *log(1-p_i)\ \end{align} ]

我们可以从两个角度来理解为什么logloss是对真实概率的估计

  1. 从极大似然估计的角度 logloss可以由极大似然函数取对数得到,最小化logloss对应的最大化似然函数。(p_i)是对(p(y_i=1))的估计 [ argmax_p \prod_{i=1}^N {p_i}^{y_i} * {(1-p_i)}^{1-y_i} ]
  2. 从信息论的角度 不熟悉信息论的同学看这里 Intro to Information Theory logloss也叫cross-entropy(交叉熵),用来衡量两个分布的相似程度。 交叉熵本身可以分解为P本身的信息熵+分布P和分布q之间的距离。这里P是样本的真实分布信息,信息熵一定。所以最小化交叉熵就变成了最小化分布p和q之间的距离,也就是样本分布和模型估计间的距离,如下 [ \begin{align} crossentropy &= H(p,q)\ &= -\sum_{c=1}^C p© * log(q©)\ & = - \sum_{c=1}^C p© * log(p©) + \sum_{c=1}^C p©log(p© - log(q©)) \ &= H§ + KL(p||q)\ \end{align} ] 乍一看会觉得交叉熵和logloss长的不像一家人。因为在训练模型时分布p是从训练样本的分布中抽象得到的。二分类问题中C=2, 让我们把上述交叉熵再推一步 [ \begin{align} H(p,q) &= p *log(q) + (1-p) *log(1-q) \ p& = \sum_{i=1}^N I(y_i=1)/N \ H(p,q) &= \frac{1}{N} \sum_i I(y_i=1) *log(q)+ I(y_i=0) *log(1-q) \ \end{align} ] 所以下次解决分类问题,如果你的目标是计算对真实概率的估计的话,别选错指标哟�

兴趣卡片- 预测概率校准 其实黄线用了Isotonic Regression来校准预测概率。是一种事后将预测概率根据真实概率进行校准的方法。感兴趣的可以看一下Reference里面的材料1,2。原理并不复杂,但在分析特定算法,尤其是boosting,bagging类的集合算法为什么使用loggloss对概率估计依旧会有偏的部分蛮有趣的

问题2 Imbalanced Sample ?

正负样本分布不均大概是分类问题中最常遇到的问题。正确解决Imbalane问题需要注意的并不只是评价指标,往往还要注意采样和训练集测试集的划分。但这里我们只讨论在解决样本分布不均的问题时,我们应该选择什么指标来评价模型表现。让我们挨个来剔除不好用的指标。

举个极端的例子,100个样本里只有1个正样本

Accuracy

这种情况下即便我们全部预测为负,我们的准确率依旧高达99%。所以Accuracy只适用于正负样本均匀分布的情况,因为它把正负样本的预测准确率柔和在一起看了。

AUC

AUC是fpr和tpr(recall)组成的ROC的曲线下面积。还记得我们在【回忆篇】里面说过fpr,tpr是分别衡量在正负样本上的准确率的。

而fpr和tpr之间的trade-off,在正样本占比很小的情况下,这种trad-off会被样本量更大的一方主导。所以当正样本占比很小的时候,AUC往往会看起来过于优秀。

但就像硬币的正反面一样,从另一个角度看这也是AUC的优点,就是AUC本身不会很大的受到样本实际分布的影响,相同的模型相同的样本,你把正样本downsample /upsample 1倍,AUC不会有很大的改变。

下图来自An introduction to ROC analysis, 上面的AUC和PR是正负样本1:1的预测表现,下面是1:10的表现。我们会发现AUC基本没有变化,但是precision-recall发生了剧烈变化。

img

AP/AUCPR

AP是recall和precision组成的PR的曲线下面积。这里recall和precision分别从真实分布和预测分布两个角度衡量了对正样本的预测准确率。说到这里已经有人反应过来了。是的这一对trade-off指标都是针对正样本的,在计算中没有用到True negative.所以当你的数据集存在Imbalance的时候,AP一般会是更好的选择。

你还遇到过啥问题嘞?欢迎留言

我的博客即将同步至腾讯云+社区,邀请大家一同入驻:https://cloud.tencent.com/developer/support-plan?invite_code=3irvlqujrda8k


Reference

  1. https://www.kaggle.com/residentmaio/notes-on-classification-probability-calibration/
  2. Pedro G. Fonseca and Hugo D. Lopes. Calibration of Machine Learning Classifiers for Probability of Default Modelling
  3. https://en.wikipedia.org/wiki/Confusion_matrix
  4. Tom Fawcett,An introduction to ROC analysis

如何系统的去学习大模型LLM ?

作为一名热心肠的互联网老兵,我意识到有很多经验和知识值得分享给大家,也可以通过我们的能力和经验解答大家在人工智能学习中的很多困惑,所以在工作繁忙的情况下还是坚持各种整理和分享。

但苦于知识传播途径有限,很多互联网行业朋友无法获得正确的资料得到学习提升,故此将并将重要的 AI大模型资料 包括AI大模型入门学习思维导图、精品AI大模型学习书籍手册、视频教程、实战学习等录播视频免费分享出来

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

在这里插入图片描述

一、全套AGI大模型学习路线

AI大模型时代的学习之旅:从基础到前沿,掌握人工智能的核心技能!

img

二、640套AI大模型报告合集

这套包含640份报告的合集,涵盖了AI大模型的理论研究、技术实现、行业应用等多个方面。无论您是科研人员、工程师,还是对AI大模型感兴趣的爱好者,这套报告合集都将为您提供宝贵的信息和启示。

img

三、AI大模型经典PDF籍

随着人工智能技术的飞速发展,AI大模型已经成为了当今科技领域的一大热点。这些大型预训练模型,如GPT-3、BERT、XLNet等,以其强大的语言理解和生成能力,正在改变我们对人工智能的认识。 那以下这些PDF籍就是非常不错的学习资源。

img

在这里插入图片描述

四、AI大模型商业化落地方案

img

阶段1:AI大模型时代的基础理解

  • 目标:了解AI大模型的基本概念、发展历程和核心原理。
  • 内容
    • L1.1 人工智能简述与大模型起源
    • L1.2 大模型与通用人工智能
    • L1.3 GPT模型的发展历程
    • L1.4 模型工程
    • L1.4.1 知识大模型
    • L1.4.2 生产大模型
    • L1.4.3 模型工程方法论
    • L1.4.4 模型工程实践
    • L1.5 GPT应用案例

阶段2:AI大模型API应用开发工程

  • 目标:掌握AI大模型API的使用和开发,以及相关的编程技能。
  • 内容
    • L2.1 API接口
    • L2.1.1 OpenAI API接口
    • L2.1.2 Python接口接入
    • L2.1.3 BOT工具类框架
    • L2.1.4 代码示例
    • L2.2 Prompt框架
    • L2.2.1 什么是Prompt
    • L2.2.2 Prompt框架应用现状
    • L2.2.3 基于GPTAS的Prompt框架
    • L2.2.4 Prompt框架与Thought
    • L2.2.5 Prompt框架与提示词
    • L2.3 流水线工程
    • L2.3.1 流水线工程的概念
    • L2.3.2 流水线工程的优点
    • L2.3.3 流水线工程的应用
    • L2.4 总结与展望

阶段3:AI大模型应用架构实践

  • 目标:深入理解AI大模型的应用架构,并能够进行私有化部署。
  • 内容
    • L3.1 Agent模型框架
    • L3.1.1 Agent模型框架的设计理念
    • L3.1.2 Agent模型框架的核心组件
    • L3.1.3 Agent模型框架的实现细节
    • L3.2 MetaGPT
    • L3.2.1 MetaGPT的基本概念
    • L3.2.2 MetaGPT的工作原理
    • L3.2.3 MetaGPT的应用场景
    • L3.3 ChatGLM
    • L3.3.1 ChatGLM的特点
    • L3.3.2 ChatGLM的开发环境
    • L3.3.3 ChatGLM的使用示例
    • L3.4 LLAMA
    • L3.4.1 LLAMA的特点
    • L3.4.2 LLAMA的开发环境
    • L3.4.3 LLAMA的使用示例
    • L3.5 其他大模型介绍

阶段4:AI大模型私有化部署

  • 目标:掌握多种AI大模型的私有化部署,包括多模态和特定领域模型。
  • 内容
    • L4.1 模型私有化部署概述
    • L4.2 模型私有化部署的关键技术
    • L4.3 模型私有化部署的实施步骤
    • L4.4 模型私有化部署的应用场景

学习计划:

  • 阶段1:1-2个月,建立AI大模型的基础知识体系。
  • 阶段2:2-3个月,专注于API应用开发能力的提升。
  • 阶段3:3-4个月,深入实践AI大模型的应用架构和私有化部署。
  • 阶段4:4-5个月,专注于高级模型的应用和部署。
这份完整版的大模型 LLM 学习资料已经上传CSDN,朋友们如果需要可以微信扫描下方CSDN官方认证二维码免费领取【保证100%免费

😝有需要的小伙伴,可以Vx扫描下方二维码免费领取🆓

在这里插入图片描述

  • 30
    点赞
  • 25
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值