降维后输入分类器分类时报错_逻辑回归解决多分类方法及其优缺点分析

众所周知,逻辑回归常用于解决二分类任务,但是在工作/学习/项目中,我们也经常要解决多分类问题。本文总结了 3 种逻辑回归解决多分类的方法,并分析了他们的优缺点。


一、One-Vs-Rest

假设我们要解决一个分类问题,该分类问题有三个类别,分别用▲,■ 和 × 表示,每个实例(Entity)有两个属性(Attribute),如果把属性 1 作为 X 轴,属性 2 作为 Y 轴,训练集(Training Dataset)的分布可以表示为下图:

295f33f0f05f05fa259a61a05d265d89.png

One-Vs-Rest 的思想是把一个多分类的问题变成多个二分类的问题。转变的思路是选择其中一个类别为正类(Positive),使其他所有类别为负类(Negative)。

比如第一步,我们将 ▲ 所代表的实例全部视为正类,其他实例全部视为负类,得到的分类器:

5c5936cc647582218e0a32c1504b8471.png

同理第二步,我们把 x 视为正类,其他视为负类,可以得到第二个分类器:

19dca5bc2b38b68b25e19bfafd7fd52a.png

最后第三步,第三个分类器是把 ■ 视为正类,其余视为负类:

460c4cb2cedb973ff640eef191b50f73.png

对于一个三分类问题,我们最终得到 3 个二元分类器。在预测阶段,每个分类器可以根据测试样本,得到当前正类的概率,即 P(y = i | x; θ),i = 1, 2, 3。选择计算概率结果最高的分类器,其正类就可以作为预测结果。

【优点】普适性比较广,可以应用于能输出值或者概率的分类器,同时效率相对较好,有多少个类别就训练多少个分类器。

【缺点】很容易造成训练集样本数量的不平衡(Unbalance),尤其在类别较多的情况下,经常容易出现正类样本的数量远远不及负类样本的数量,这样就会造成分类器的偏向性。


二、One-VS-One

相比于 One-Vs-Rest 由于样本数量可能的偏向性带来的不稳定性,One-Vs-One 是一种相对稳健的扩展方法。对于同样的三分类问题,我们让不同类别的数据两两组合训练分类器,可以得到 3 个二元分类器。

它们分别是 ▲ 与 x 训练得出的分类器:

c4bbea82311df589907b328343232d47.png

▲ 与 ■ 训练的出的分类器:

e583ef211b34d23e0c7ef9a347202084.png

以及 ■ 与 x 训练得出的分类器:

5c14e1c82e1e1caed8cdfa53a03d4569.png

假如我们要预测的一个数据在图中红色圆圈的位置,那么第一个分类器会认为它是 x,第二个分类器会认为它偏向▲,第三个分类器会认为它是 x,经过三个分类器的投票之后,可以预测红色圆圈所代表的数据的类别为 x。

209c537fc8330687712982407fbefc42.png

【优点】在一定程度上规避了数据集 unbalance 的情况,性能相对稳定,并且需要训练的模型数虽然增多,但是每次训练时训练集的数量都降低很多,其训练效率会提高。

【缺点】训练出更多的 Classifier,会影响预测时间。如果有 k 个不同的类别,对于 One-Vs-All 来说,一共只需要训练 k 个分类器,而 One-Vs-One 则需训练 C(k, 2) 个分类器,只是因为在本例种,k = 3 时恰好两个值相等,一旦 k 值增多,One-Vs-One 需要训练的分类器数量会大大增多。


三、Softmax 函数

该模型将逻辑回归推广到分类问题,其中类标签 y 可以采用两个以上的可能值。这对于诸如MNIST数字分类之类的问题将是有用的,其中目标是区分10个不同的数字。

在softmax回归中,我们对多类分类感兴趣(而不是仅对二元分类),所以y可以取k个不同的取值。因此,在我们的训练集

,其中

给定测试输入 x ,我们希望模型估计每个类别的概率。因此,模型将输出k维向量(其元素总和为1),给出 k 个类别的估计概率。具体地说,我们的假设

采用以下形式:

74eeaab14c3024396ce069379d63137b.png

其中,

是模型的参数,而
是归一化项。

为方便起见,用向量法来表示模型的所有参数。当实现 softmax 回归时,将θ表示为通过堆叠

成行获得的
的矩阵通常很方便,这样

9b4efdce61b0fd26a1663fb170ec2409.png

损失函数:

1594afa6a86b0cf1abbf5d89e13529e4.png

求导后,可得

768d594d67c68d511c14bcbf0913f07e.png

更新参数:

06439a88804557e798aef0b419b5f9bc.png

【注】 One-vs-Rest V.S. Softmax

假设正在处理音乐分类应用程序,并且正在尝试识别 k 种类型的音乐。您应该使用softmax分类器,还是使用逻辑回归构建k个单独的二元分类器呢?这取决于这四个类是否相互排斥。如果类别之间是互斥的,softmax 会比较合适,如果类别之间不是互斥的,用 OvR 比较合适。

例如,如果四个类是经典,乡村,摇滚和爵士乐,每个训练样例都标有这四个类别标签中的一个,那么您应该构建一个 k = 4 的 softmax 分类器,因为这些标签都是互斥的。但是,如果类别是舞蹈,配乐,流行音乐,那这些并不相互排斥,因为可以有一段来自音轨的流行音乐,另外还有人声。在这种情况下,构建 4 个二元逻辑回归分类器更合适。这样,对于每个新的音乐作品,算法可以单独决定它是否属于四个类别中的每一个

总结,如果类别之间是互斥的,那么用 softmax 会比较合适,如果类别之间不是互斥的,用 OvR 比较合适。

参考:

[1]

力扣(LeetCode):3 种方法实现逻辑回归多分类​zhuanlan.zhihu.com
a10dd37236206f81c95c6f22899fe086.png

[2]

飞鱼Talk:逻辑回归 - 4 逻辑回归与多分类​zhuanlan.zhihu.com
b348dfcf03041071672871cf97225b63.png

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

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

相关文章

PyTorch 的 Autograd

PyTorch 的 Autograd 转自:PyTorch 的 Autograd PyTorch 作为一个深度学习平台,在深度学习任务中比 NumPy 这个科学计算库强在哪里呢?我觉得一是 PyTorch 提供了自动求导机制,二是对 GPU 的支持。由此可见,自动求导 (a…

商场楼层导视牌图片_百宝图商场电子导视软件中预约产品功能简介

百宝图商场电子导视软件中预约产品功能简介 管理端,可配合百宝图商场电子导视软件配套使用 1:数据展示:图形展示总预约数/预约时间峰值/预约途径/各途径数量对比 2:数据统计:有效预约数量/无效预约数量/无效预约原因备…

Pytorch autograd.grad与autograd.backward详解

Pytorch autograd.grad与autograd.backward详解 引言 平时在写 Pytorch 训练脚本时,都是下面这种无脑按步骤走: outputs model(inputs) # 模型前向推理 optimizer.zero_grad() # 清除累积梯度 loss.backward() # 模型反向求导 optimizer.step()…

相对熵与交叉熵_熵、KL散度、交叉熵

公众号关注 “ML_NLP”设为 “星标”,重磅干货,第一时间送达!机器学习算法与自然语言处理出品公众号原创专栏作者 思婕的便携席梦思单位 | 哈工大SCIR实验室KL散度 交叉熵 - 熵1. 熵(Entropy)抽象解释:熵用于计算一个随机变量的信…

动手实现一个带自动微分的深度学习框架

动手实现一个带自动微分的深度学习框架 转自:Automatic Differentiation Tutorial 参考代码:https://github.com/borgwang/tinynn-autograd (主要看 core/tensor.py 和 core/ops.py) 目录 简介自动求导设计自动求导实现一个例子总结参考资料 简介 梯度…

http 错误 404.0 - not found_电脑Regsvr32 用法和错误消息的说明

​ 对于那些可以自行注册的对象链接和嵌入 (OLE) 控件,例如动态链接库 (DLL) 文件或 ActiveX 控件 (OCX) 文件,您可以使用 Regsvr32 工具 (Regsvr32.exe) 来将它们注册和取消注册。Regsvr32.exe 的用法RegSvr32.exe 具有以下命令行选项: Regs…

MobileNet 系列:从V1到V3

MobileNet 系列:从V1到V3 转自:轻量级神经网络“巡礼”(二)—— MobileNet,从V1到V3 自从2017年由谷歌公司提出,MobileNet可谓是轻量级网络中的Inception,经历了一代又一代的更新。成为了学习轻…

mysql 高级知识点_这是我见过最全的《MySQL笔记》,涵盖MySQL所有高级知识点!...

作为运维和编程人员,对MySQL一定不会陌生,尤其是互联网行业,对MySQL的使用是比较多的。MySQL 作为主流的数据库,是各大厂面试官百问不厌的知识点,但是需要了解到什么程度呢?仅仅停留在 建库、创表、增删查改…

teechart mysql_TeeChart 的应用

TeeChart 是一个很棒的绘图控件,不过由于里面没有注释,网上相关的资料也很少,所以在应用的时候只能是一点点的试。为了防止以后用到的时候忘记,我就把自己用到的东西都记录下来,以便以后使用的时候查询。1、进制缩放图…

NLP新宠——浅谈Prompt的前世今生

NLP新宠——浅谈Prompt的前世今生 转自:NLP新宠——浅谈Prompt的前世今生 作者:闵映乾,中国人民大学信息学院硕士,目前研究方向为自然语言处理。 《Pre-train, Prompt, and Predict: A Systematic Survey of Prompting Methods in…

requestfacade 这个是什么类?_Java 的大 Class 到底是什么?

作者在之前工作中,面试过很多求职者,发现有很多面试者对Java的 Class 搞不明白,理解的不到位,一知半解,一到用的时候,就不太会用。想写一篇关于Java Class 的文章,没有那么多专业名词&#xff0…

初学机器学习:直观解读KL散度的数学概念

初学机器学习:直观解读KL散度的数学概念 转自:初学机器学习:直观解读KL散度的数学概念 译自:https://towardsdatascience.com/light-on-math-machine-learning-intuitive-guide-to-understanding-kl-divergence-2b382ca2b2a8 解读…

MySQL应用安装_mysql安装和应用

1.下载mysql安装包2.安装mysql,自定义->修改路径3.配置mysql,选择自定义->server模式->500访问量->勾选控制台->设置gbk->设置密码和允许root用户远程登录等等。以管理员权限,在控制台输入:net start MySQL, 启…

mysql 商品规格表_商品规格分析

产品表每次更新商品都会变动的,ID不能用,可是购物车还是用了,这就导致每次保存商品,哪怕什么都没有改动,也会导致用户的购物车失效。~~~其实可以考虑不是每次更新商品就除所有的SKU,毕竟有时什么都没修改呢…

huggingface NLP工具包教程1:Transformers模型

huggingface NLP工具包教程1:Transformers模型 原文:TRANSFORMER MODELS 本课程会通过 Hugging Face 生态系统中的一些工具包,包括 Transformers, Datasets, Tokenizers, Accelerate 和 Hugging Face Hub。…

隐马尔可夫模型HMM推导

隐马尔可夫模型HMM推导 机器学习-白板推导系列(十四)-隐马尔可夫模型HMM(Hidden Markov Model) 课程笔记 背景介绍 介绍一下频率派和贝叶斯派两大流派发展出的建模方式。 频率派 频率派逐渐发展成了统计机器学习,该流派通常将任务建模为一…

使用randomaccessfile类将一个文本文件中的内容逆序输出_Java 中比较常用的知识点:I/O 总结...

Java中I/O操作主要是指使用Java进行输入,输出操作. Java所有的I/O机制都是基于数据流进行输入输出,这些数据流表示了字符或者字节数据的流动序列。数据流是一串连续不断的数据的集合,就象水管里的水流,在水管的一端一点一点地供水…

huggingface NLP工具包教程2:使用Transformers

huggingface NLP工具包教程2:使用Transformers 引言 Transformer 模型通常非常大,由于有数百万到数百亿个参数,训练和部署这些模型是一项复杂的任务。此外,由于几乎每天都有新模型发布,而且每个模型都有自己的实现&a…

mysql精讲_Mysql 索引精讲

开门见山,直接上图,下面的思维导图即是现在要讲的内容,可以先有个印象~常见索引类型(实现层面)索引种类(应用层面)聚簇索引与非聚簇索引覆盖索引最佳索引使用策略1.常见索引类型(实现层面)首先不谈Mysql怎么实现索引的,先马后炮一…

RT-Smart 官方 ARM 32 平台 musl gcc 工具链下载

前言 RT-Smart 的开发离不开 musl gcc 工具链,用于编译 RT-Smart 内核与用户态应用程序 RT-Smart musl gcc 工具链代码当前未开源,但可以下载到 RT-Thread 官方编译好的最新的 musl gcc 工具链 ARM 32位 平台 比如 RT-Smart 最好用的 ARM32 位 qemu 平…