机器学习:二分类到多分类-ovr,ovo,mvm,sofmax

一般情况下,我们都认为逻辑回归(LR)用来解决二分类问题,BCE损失函数也是用来解决二分类问题的,那逻辑回归以及BCE损失函数能否用来做多分类任务呢,答案是肯定的。有两种方法
一、将多分类任务拆解成多个二分类任务;
二、对传统的逻辑回归模型进行改造,使之变为softmax回归模型进行多分类任务求解(也就是sklearn中逻辑回归的multi_class=‘multinomial’), 我们可以认为多元逻辑回归就是sofmax回归

  • 多分类任务拆解成多个二分类器
    将多分类任务拆为多个二分类任务求解,一般有3种拆分策略:
    1. OvO(一对一,One vs One):假如数据D中有N个类别,将N个类别进行两两配对,产生N(N-1)/2个二分类器,在预测中,将测试样本输入这N(N-1)/2个二分类器中得到相应个数的预测结果,然后再将被预测结果数最多的(Voting)作为最终分类结果。
    2. OvR(一对其余,One vs Rest): 将一个类别作为正例,其余所有类别作为反例,这样N个类别可以产生N个二分类器,将测试样本输入这些二分类器中中得到N个预测结果,如果仅有一个分类器预测为正类,则将对应的预测结果作为最终预测结果。如果有多个分类器预测为正类,则选择置信度最大的类别作为最终分类结果。
    3. MvM(多对多,Many vs Many):将数据集中的若干个类作为正例,若干个其他类作为反例。MvM的正、反类构造必须有特殊的设计,而不是随意选取,通
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
机器学习-基于python实现对数几率回归模型对西瓜、鸢尾花进行分类源码+项目说明+实验报告 【项目介绍】 该资源内项目代码都是经过测试运行成功,功能ok的情况下才上传的,请放心下载使用! 本项目适合计算机相关专业(如计科、人工智能、通信工程、自动化、电子信息等)的在校学生、老师或者企业员工下载使用,也适合小白学习进阶, 或者实际项目借鉴参考! 当然也可作为毕设项目、课程设计、作业、项目初期立项演示等。如果基础还行,也可在此代码基础上进行修改,以实现其他功能。 数据集特征分析 本次实验采用西瓜数据集以及鸢尾花数据集,西瓜数据集中包含17个样本,每个西瓜样本包含两维特征,包括西瓜的含糖量以及密度,以及对应的好瓜和坏瓜标签用0和1表示。鸢尾花数据集中包含150个样本,每个样本包含四维特征分别是花萼长、花萼宽、花瓣长、花瓣宽,以及对应的鸢尾花品种标签,三个鸢尾花品种分别用0、1、2表示。 由于西瓜数据集样本数量较少,因此这里采用将所有17个样本作为训练集,并再次利用17个样本作为测试集验证模型的准确度。将鸢尾花数据集以8:2的比例切分为训练集和测试集。最后使用sklearn自带的模型验证工具对本次实现的对数几率回归模型进行精准度分析。 对于鸢尾花数据集的多分类问题,我采用的是OVR的方式,分别将鸢尾花的三个品种作为正例,将剩余两个品种作为负例训练三个分类器,再计算每个分类器的置信度,将置信度最高的分类器作为样本的预测结果。由此得到的多分类模型在鸢尾花数据集上的分类准确度最高可以达到100%。 文件目录 |-- IrisRegress.py 鸢尾花数据集分类测试 |-- LogisticModel.py 对数几率回归模型 |-- README.md |-- WaterRegress.py 西瓜数据集3.0分类测试 以上是西瓜数据集,西瓜数据集每个样本有含糖量以及密度两维特征,以及对应的好瓜和坏瓜标签。以及对应的数据分布情况,由上图可以可以看出西瓜数据集的含糖量以及密度分布并不是很规范,因此导致后面的对数几率回归分类模型的准确度最多只能达到70-80%, 通过参数的调试当w初始值设为0.05,迭代次数1000时模型的准确率达到71%,通过调试的过程可以发现准确率在60-70%左右。 这也是数据集的数据量少和样本分布规律并不明显导致的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值