当前位置: 首页 > news >正文

线性回归原理推导与应用(九):逻辑回归多分类问题的原理与推导

普通的逻辑回归只能针对二分类问题,也就是分类结果为是和不是,好和不好等问题,而实际应用中还会有多分类的问题,例如金融行业信用评分中需要将用户分为好,中,差三类,对企业信用评级要划分为低风险,中风险,高风险等等。要想实现多个类别的分类,我们必须要改进logistic回归,让其适应多分类问题。

逻辑回归多分类模型是二分类模型的拓展。主要有OVO/OVR和Softmax回归等拓展方法,其中,OVO/OVR是基于二分类模型的一种通用拓展方法。而Softmax回归是修改逻辑回归的损失函数,让其适应多分类问题。

OVO/OVR

一对一分类器(OvO,One Vs One)

​ 对于OvO策略,我们将训练样本中的 n n n 个类别两两配对,从而产生 n ( n − 1 ) / 2 n(n-1)/2 n(n1)/2 个分类任务(也就是就是组合 C n 2 C_n^2 Cn2)。我们每次拿其中的两类去训练一个分类器,最终将训练出 n ( n − 1 ) / 2 n(n-1)/2 n(n1)/2 个分类器。当预测一组数据时,分别用这 n ( n − 1 ) / 2 n(n-1)/2 n(n1)/2个分类器进行预测,最终的结果为所有预测结果中最多的那一个(即投票选出结果)。

接下来举一个栗子来帮助大家理解OvO的分类过程。

假设现在数据集的分布如下图所示(其中A,B,C代表训练数据的类别)
在这里插入图片描述

OvO首先从训练集中划分不同的两个类别的组合来训练出多个分类器。因为例子中是三类,所以两两分类后会有 C 3 2 C_3^2 C32=3 个分类器,如下图所示(其中每一个矩形框代表一种划分):
在这里插入图片描述
在预测阶段,只需要将样本分别扔给训练阶段训练好的3个分类器进行预测,相当于进行三次逻辑回归二分类,最后将3个分类器预测出的结果进行投票统计,票数最高的结果为预测结果。假设样本是符合A分类的,那么这一个样本在3个分类器中的结果如下图所示:
在这里插入图片描述
在三个分类器中会有两个分类结果为A分类,次数最多,所以最终结果就判断分类结果为A

一对其余分类器(OvR,One Vs Rest)

​ 对于OvR策略,枚举每一种类别,将枚举到的类别作为正例而其他的统一作为反例,这样只需要训练 n n n 个分类器。当预测一组数据时,分别用这 n n n个分类器进行预测,选取结果为正例 (只可能有一个为正例) 的类别作为最终结果。

同样来举一个栗子来帮助大家理解OvO的分类过程。和上面一样假设现在有A,B,C共3个分类的训练数据集:
在这里插入图片描述
OvR在训练阶段取一种样本作为一类,将剩余的所有类型的样本看做另一类,
在这里插入图片描述

这样就形成了3个二分类问题,对应有3个分类器。
在这里插入图片描述

在预测阶段,只需要将样本分别扔给训练阶段训练好的3个分类器进行预测,最后选概率最高的类别作为最终结果。如下图所示
在这里插入图片描述

区别

从具体的分类流程可以知道OvO用时较多,在类别较多的情况下 C n 2 C_n^2 Cn2个分类器个数远远多于OvR的 n n n个分类器。但OvO分类结果更准确,因为每一次二分类时都用真实的类型进行比较,没有混淆其它的类别;

Softmax

对于二分类问题,我们可以使用Sigmod函数(又称Logistic函数)。将 ( − ∞ , + ∞ ) (-\infty, +\infty) (,+)范围内的数值映射成为一个 ( − 1 , 1 ) (-1, 1) (1,1)区间的数值,一个 ( − 1 , 1 ) (-1, 1) (1,1)区间的数值恰好可以用来表示概率。

而为了能将线性回归后的数值进行多分类,需要输出每个类别的概率,这样就可以选择一个概率最高的类别作为预测结果,从而实现多分类。使用的Softmax的公式如下
Softmax ( z i ) = e z i ∑ j e z j \text{Softmax}(z_{i}) = \frac{e^{z_i}}{\sum_j e^{z_j}} Softmax(zi)=jezjezi

Softmax公式大致就是对数据做了归一化,可以让计算出的所有的值都是 [0, 1] 之间的(因为概率必须是 [0, 1]),且所有的值加起来等于 1。用实际数据举个栗子,如下:
在这里插入图片描述
可以看到softmax将原来输出是3,1,-3通过softmax函数一作用,就映射成为(0,1)的值,而这些值的累和为1(满足概率的性质),那么我们就可以将它理解成概率,在最后选取输出结点的时候,我们就可以选取概率最大(也就是值对应最大的)结点,作为我们的预测目标!

参考文章:
https://zhuanlan.zhihu.com/p/45230536
https://www.zhihu.com/question/273645014
https://blog.csdn.net/alw_123/article/details/98869193
https://blog.csdn.net/qq_44350242/article/details/112372860

在这里插入图片描述

http://www.xdnf.cn/news/1016875.html

相关文章:

  • 用户通知服务,轻松实现应用与用户的多场景交互
  • 嵌套滚动交互处理总结
  • FastChat 架构拆解:打造类 ChatGPT 私有化部署解决方案的基石
  • python实现鸟类识别系统实现方案
  • Java实现Pdf转Word
  • 打破语言壁垒!DHTMLX Gantt 与 Scheduler 文档正式上线中文等多语言版本!
  • 使用 PolarProxy+Proxifier 解密 TLS 流量
  • 北京大学肖臻老师《区块链技术与应用》公开课:08-BTC-比特币挖矿
  • MySQL索引原理
  • KDJ指标的运用
  • 商家如何利用Shopify插件进行AB测试和优化
  • MAC无法 ping 通github 系列主页
  • EFK架构的数据安全性
  • AI编程第一步:零基础用人工智能生成你的Hello World和计算器
  • SQL力扣
  • 【AI News | 20250613】每日AI进展
  • 使用若依框架新建模块后导入UI项目目录对应前端文件后报找不到文件错误处理
  • 【DVWA系列】——xss(Stored)——High详细教程
  • 高精度算法详解:从原理到加减乘除的完整实现
  • 【AI图像生成网站Golang】部署图像生成服务(阿里云ACK+GPU实例)
  • skynet源码学习-skynet_mq队列
  • 目标检测标注格式
  • 对象映射 C# 中 Mapster 和 AutoMapper 的比较
  • 无人机侦测与反制技术进展
  • 精益数据分析(101/126):SaaS商业模式优化与用户生命周期价值提升策略
  • React 第六十一节 Router 中 createMemoryRouter的使用详解及案例注意事项
  • 【CSS-12】掌握CSS列表样式:从基础到高级技巧
  • 如何快速搭建门店系统?
  • 浅析MySQL数据迁移与恢复:从SQLServer转型到MySQL
  • 搭建网站应该怎样选择服务器?