如何使用逻辑回归处理多标签问题?

逻辑回归处理多分类

      • 1、背景描述
      • 2、One vs One
      • 3、One vs Rest
      • 4、从Sigmoid到Softmax的推导



1、背景描述


逻辑回归本身只能用于二分类问题,如果实际情况是多分类的,那么就需要对模型进行一些改动。下面介绍三种常用的将逻辑回归用于多分类的方法

2、One vs One


OvO(One vs One)方法是指从多个类别中任意抽取出两个类别,然后将对应的样本输入到一个逻辑回归的模型中,学习到一个对这两个类别的分类器,然后重复以上的步骤,直到所有类别两两之间都学习到一个分类器

简单来说,就是让不同类别的数据两两组合训练分类器

例如,对于3分类问题,分类器的数量为 C 3 2 C_3^2 C32=3个,即可以得到3个二元分类器

分类器的数量可以使用 C k 2 C_k^2 Ck2计算,其中 k k k代表类别的数量

在预测阶段,只需要将测试样本分别输入训练阶段训练好的3个分类器进行预测,最后将3个分类器预测出的结果进行投票统计,票数最高的结果为预测结果

例如,下面的3分类问题:

在这里插入图片描述

上图(从左到右)分别为三角形与十字星训练出的分类器、三角形与正方形训练出的分类器和正方形与十字星训练出的分类器

现在,我们有一个在红色圆圈位置的数据,如下图,通过上述方法,我们如何预测的这个数据是哪一类?

在这里插入图片描述

将新样本分别输入训练好的3个分类器:第一个分类器会认为它是一个十字星,第二个分类器会认为它偏向三角形,第三个分类器会认为它是十字星,经过3个分类器的投票之后,可以预测红色圆圈位置所代表的数据的类别为十字星

任何一个测试样本都可以通过分类器的投票选举出预测结果,这就是OvO(One vs One)的运行方式

在OvO的方法中,当需要预测的类别变得很多的时候,那么我们需要进行训练的分类器也变得很多了,这将大大提高训练开销。但是,每一个训练器中,我们只需要输入两个类别对应的训练样本

3、One vs Rest


OvR(One vs Rest)方法从所有类别中依次选择一个类别作为1,其他所有类别作为0,来训练分类器,因此分类器的数量要比OvO的数量少得多

简单来说就是,对n种类别的样本进行分类时,分别取一种样本作为一类,将剩余的所有类型的样本看做另一类,这样就形成了n个二分类问题

例如,对于三分类问题,分类器的数量为3个,对于四分类问题,分类器的数量为4个。分类器的数量实际上就是类别的数量

在预测阶段,只需要将测试样本分别输入训练阶段训练好的3个分类器进行预测,最后将3个分类器预测出的结果进行投票统计,预测结果的确定,是根据每个分类器对其对应的类别为1的概率进行排序,选择概率最高的那个类别作为最终的预测类别

例如,下面的三分类问题:

在这里插入图片描述

上图(从左到右)分别为三个分类器,分类器1认为是A的概率为0.7,分类器2认为是B的概率为0.3,分类器3认为是C的概率为0.2,因此,最终的预测结果为A

4、从Sigmoid到Softmax的推导


第三种方法,我们可以直接从数学上使用Softmax函数来得到最终的结果,而Softmax函数与Sigmoid函数有着密不可分的关系,它是Sigmoid函数的更一般化表示,而Sigmoid函数是Softmax函数的一个特殊情况

在之前的文章(详见:传送门)中,我们已经推出了线性回归的结果等于对数几率(log odds),也称logit函数
l o g i t ( P ) = ln ⁡ P 1 − P = ω T x logit(P)=\ln \frac{P}{1-P}=\omega^Tx logit(P)=ln1PP=ωTx

分子表示一个事件发生的概率,分母代表这个事件不发生的概率,两者的和为1

当我们面对的情况是多个分类时,可以让k-1个类别分别对剩下的那个类别做回归,即得到k-1个logit公式
ln ⁡ P ( Y = c i ∣ x ) P ( Y = c k ∣ x ) = ω i T x ( i = 1 , 2 , . . . k − 1 ) \ln \frac{P(Y=c_i|x)}{P(Y=c_k|x)}=\omega_i^Tx \;\;\;\;\;(i=1,2,...k-1) lnP(Y=ckx)P(Y=cix)=ωiTx(i=1,2,...k1)

于是
P ( Y = c i ∣ x ) = P ( Y = c k ∣ x ) e ω i T x P(Y=c_i|x)=P(Y=c_k|x)e^{\omega_i^Tx} P(Y=cix)=P(Y=ckx)eωiTx

由于所有类别的可能性相加为1,因此可以得到
P ( Y = c k ∣ x ) = 1 − ∑ i = 1 k − 1 P ( Y = c i ∣ x ) = 1 − ∑ i = 1 k − 1 P ( Y = c k ∣ x ) e ω i T x P(Y=c_k|x)=1-\sum_{i=1}^{k-1}P(Y=c_i|x)=1-\sum_{i=1}^{k-1}P(Y=c_k|x)e^{\omega_i^Tx} P(Y=ckx)=1i=1k1P(Y=cix)=1i=1k1P(Y=ckx)eωiTx

通过解上面的方程,可以得到关于某个样本被分类到类别 c k c_k ck的概率为
P ( Y = c k ∣ x ) = 1 1 + ∑ i = 1 k − 1 e ω i T x P(Y=c_k|x)=\frac{1}{1+\sum_{i=1}^{k-1}e^{\omega_i^Tx}} P(Y=ckx)=1+i=1k1eωiTx1

这就是我们的Softmax函数了



参考文章:https://zhuanlan.zhihu.com/p/463149304


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/488142.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

挑战杯 基于大数据的股票量化分析与股价预测系统

文章目录 0 前言1 课题背景2 实现效果3 设计原理QTChartsarma模型预测K-means聚类算法算法实现关键问题说明 4 部分核心代码5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 基于大数据的股票量化分析与股价预测系统 该项目较为新颖…

ES通用查询页面使用说明

前言:ES语法比较复杂,需要专门的学习,而且查询工具不太友好, 对公司运维人员使用有点困难,所以花了个时间做了一个页面,方便运维人员使用,如下。 也不难,有兴趣的朋友可以私聊发源码。 开发帮助-ES数据查询 搜索 输入要查看的文档索引,文档类型后点【查询】即可 搜…

pikachu靶场-File Inclusion

介绍: File Inclusion(文件包含漏洞)概述 文件包含,是一个功能。在各种开发语言中都提供了内置的文件包含函数,其可以使开发人员在一个代码文件中直接包含(引入)另外一个代码文件。 比如 在PHP中,提供了&…

测试计划、测试方案、测试策略、测试用例的区别

一 测试计划 测试计划是指描述了要进行的测试活动的范围、方法、资源和进度的文档。它主要包括测试项、被测特性、各阶段的测试任务、时间进度安排,谁执行任务和风险控制等,可以包括测试策略。 二 测试方案 测试方案是指描述需要测试的特性、测试的方…

C#入门详解_02_初识各类应用程序(学习方法;console;winform;WPF;C#语言还可以进行的网站开发、平板、手机程序开发方法)

本节主要介绍各种可以用C#编写的应用程序。 文章目录 1. 编程学习的捷径2. 编写我们的第一个程序--Hello,World!2.1 Console-控制台2.2 Windows Forms (Old)2.3 WPF(Windows Presentation Foundation)2.4 高版本VS进行C#编程(了解c#还可以做什么)2.4.1 ASP.NET Web Forms (Old)…

前端工程化面试题 | 16.精选前端工程化高频面试题

🤍 前端开发工程师、技术日更博主、已过CET6 🍨 阿珊和她的猫_CSDN博客专家、23年度博客之星前端领域TOP1 🕠 牛客高级专题作者、打造专栏《前端面试必备》 、《2024面试高频手撕题》 🍚 蓝桥云课签约作者、上架课程《Vue.js 和 E…

算法沉淀——FloodFill 算法(leetcode真题剖析)

算法沉淀——FloodFill 算法 01.图像渲染02.岛屿数量03.岛屿的最大面积04.被围绕的区域05.太平洋大西洋水流问题06.扫雷游戏07.衣橱整理 Flood Fill(泛洪填充)算法是一种图像处理的基本算法,用于填充连通区域。该算法通常从一个种子点开始&am…

解决Maven爆红以及解决 Idea 卡在 Resolving问题

关于 Idea 卡在 Resolving(前提是Maven的setting.xml中配置好了阿里云和仓库) 参考文章https://blog.csdn.net/jiangyu1013/article/details/95042611 解决Maven爆红参考文章https://devpress.csdn.net/beijing/656d993b76f0791b6eca7bb0.html?dp_toke…

什么是柔性事务?

概念 柔性事务,是业内解决分布式事务的主要方案。所谓柔性事务,相比较与数据库事务中的ACID这种刚性事务来说,柔性事务保证的是“基本可用,最终一致。”这其实就是基于BASE理论,保证数据的最终一致性。 虽然柔性事务…

关于使用Mxnet GPU版本运行DeepAR报错解决方案

1.引言 我们经常使用GPU来训练和部署神经网络,因为与CPU相比,它提供了更多的计算能力。在本教程中,我们将介绍如何将GPU与MXNet GluonTS一起使用。 首先,确保您的机器中至少有一个Nvidia GPU,并正确安装了CUDA以及CUDN…

Linux实验记录:使用PXE+Kickstart无人值守安装服务

前言: 本文是一篇关于Linux系统初学者的实验记录。 参考书籍:《Linux就该这么学》 实验环境: VmwareWorkStation 17——虚拟机软件 RedHatEnterpriseLinux[RHEL]8——红帽操作系统 备注: 实际生产中安装操作系统的工作&…

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二)

【寸铁的刷题笔记】树、dfs、bfs、回溯、递归(二) 大家好 我是寸铁👊 金三银四,树、dfs、bfs、回溯、递归是必考的知识点✨ 快跟着寸铁刷起来!面试顺利上岸👋 喜欢的小伙伴可以点点关注 💝 上期回顾 感谢大家的支持&am…